목록분류 전체보기 (295)
거의 알고리즘 일기장
#include #include using namespace std; int main() { //+기호 출력 cout.setf(ios::showpos); cout
setw, setprecision #include #include using namespace std; int main() { double a = 1.222222f; char buf[5]; //5개까지 입력을 받음, 마지막은 nullchar용 cin >> setw(5) >> buf; cout
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이방법 중복체크 : set이용 문자가 연속되는것 처리 : before를 만들어 현재 문자와 계속 비교하고 같다면 넘어갔다. 사실 이것말고는 없어서.. 그냥 넘어가겠다. 전체코드 #include #..
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, www.acmicpc.net 깔끔히 푸는 방법이 있을까 하고 여러방면으로 생각해봤는데 도저히 생각나지 않아 노가다성이 짙게 짰다. 부끄럽다ㅠ 총 두번풀었는데..
https://www.youtube.com/watch?v=V9AGvwPmnZU 공부가 하기 싫어 들어간 유튜브에서 한 동영상을 보게 되었다. 그리고 본 이 영상은 나에게 많은 감명을 줬다. 특히 '하루하루 열심히 전체적으론 마음대로' 이 말이 내 마음에 와닿았다. 그리고 이 사람이 블로그도 한다기에 흥미가 생겨 쓴 블로그도 들어가 보고 여러 글을 가볍게 읽어보았다. 처음엔 가볍게 보기 시작했는데 보다보니 내 자신이 부끄럽게 느껴지기도 하고 개발자 꿈나무로서 많은 것을 생각하게 해주는 글이었다. 그만큼 이 분이 열심히 살아온게 느껴졌다. 나도 이렇게 될수있을까? 미래가 걱정되기도 하고 두렵지만 하루하루 열심히 해보자!
string의 사용방법들 #include #include #include #include using namespace std; //osstream을 이용해서 문자열로 변환하기? template string Tostring(T x) { ostringstream osstream; osstream > x) ? true : false; } int main() { string my_string(Tostring("hello")); double d; if (FromString(my_string, d)) cout
https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀있고, i번째 원판에 적힌 j번째 수의 위치는 (i, j)로 표현한다. 수의 위치는 다음을 만족한다. (i, 1)은 (i, 2), (i, M)과 인접하다. (i, M)은 (i, M-1), (i, 1)과 인접하다. (i, j)는 (i, j-1), (i, j www.acmicpc.net 풀이방법 1. 원판을 회전시킨다. 2. 인접한수가 있는지 확인하고 있다면 -1로 바꿔준다 3. 인접한수가 없다면 평균을 구해 평균..
https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다. 게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 www.acmicpc.net 풀이방법 시뮬레이션 문제다보니 생각할거리가 정말 많다. 1. 내 위에 쌓여있는 말은 무엇이고, 내 밑에 쌓여있는 말은 무엇인가?..
https://www.acmicpc.net/problem/5622 5622번: 다이얼 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. www.acmicpc.net 공식으로 깔끔하게 나오지 않는 문제들을 풀때 이런 문제를 풀때 string number = "22233344455566677778889999..
https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 재현시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 재현시는 크기가 N×N인 격자로 나타낼 수 있다. 격자의 각 칸은 구역을 의미하고, r행 c열에 있는 구역은 (r, c)로 나타낼 수 있다. 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다 www.acmicpc.net 풀이방법 이 문제는 주어진 범위 그대로 5 선거구의 경계선을 그어주고 풀면 풀이가 쉽다. 그러므로 내 코드를 참조하여 풀이시 주..