https://www.acmicpc.net/problem/17822 난이도를 확 높인 골2 구현 문제다. 나름 유명한 문제고, 이전에도 문제 찾다가 종종 본 적이 있었는데 딱 봐도 귀찮아서 안했었다.근데 오랜만에 잡으니까 근자감으로 이 정도는 껌일 것 같아서 시도 했더니 껌이었다ㅋ 우선 원판 회전을 위해 배열 대신 벡터를 사용했다.방향을 주의하여 한쪽 끝의 값을 저장하고 삭제한 뒤 반대쪽 끝에 값을 삽입했다. 이후 이웃한 값이 같은 값인지를 판단해야 한다.간단하게 머리로 시뮬레이션을 돌려봤더니 밖에서부터 하든 안에서부터 하든 문제가 발생했다.예를 들면 원판의 값이 1 1 1인 경우 처음 두 개의 1 1 이 같아 0 0 1로 바꿔버리면 마지막 1은 같은데도 불구하고 무시된다. 그래서 찾은 방법은 원 배열은..
Algorithm/Implementation
https://www.acmicpc.net/problem/1283 몸풀기로 실버 문제를 한 문제 더 풀었다. 문자열, 구현 문제다.분명 어려워 보이지는 않는데 C++ 문자열은 split도 안되고 문자열 전체의 대소 변경도 안되는 관계로 조금 까다로웠다. 우선 입력 받는 문자열에 공백이 포함되므로 getline을 이용해서 입력을 받는다.(getline은 쓸 때마다 헷갈려서 찾아봤는데 이번 학기에 타 과 C++ 수업 또 들으면서 확실히 익숙해졌다.)다른 언어들이면 split을 이용해서 공백으로 구분을 했을텐데 C++은 그런게 존재하지 않기에 반복문을 돌렸다.1. 첫 글자가 단축키로 지정되었는지 확인2. 이전 글자가 공백인 글자가 단축키로 지정되었는지 순차적으로 확인 3. 별다른 조건 없이 옵션에 포함된 글자..
https://www.acmicpc.net/problem/1138 사실 이렇게 빨리 다시 코테 블로그를 작성하게 될 줄은 몰랐다.오랜만에 하니 역시나 재밌고, 코드를 더더더더더 간결하게 작성하고 싶어진다. 구현 문제다.나를 기준으로 왼쪽에 자신보다 큰 사람이 몇 명인지 순차적으로 입력이 들어온다.이와 비슷한 고난도 문제들에서는 자신보다 큰 거나 작은 것이 아닌 그들끼리도 관계를 가진다.그러나 이 문제는 나와의 관계만 파악하므로 쉽게 해결할 수 있었다. 입력의 크기가 굉장히 작기 때문에 효율적인 방법을 생각하지 않아도 해결할 수 있다. 작은 사람부터 배치할 것이기에 이후에 위치하는 사람들은 나보다 큰 사람이다.따라서 1번부터 n-2번 까지는 왼쪽에서 부터 i+1번째 빈 칸에 위치하면 된다.n-2번 까지 위..
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 구현 문제다. 이전에 풀다가 실패한 문제다. 문제 설명 8개의 톱니로 이루어진 4개의 톱니바퀴가 존재한다. 이들은 서로 맞닿아 물려있고, 각 톱니에는 N극 혹은 S극이 존재한다. 하나의 톱니바퀴를 돌렸을 때, 다른 극 끼리 맞닿아 있다면 반대 방향으로 회전한다. 같은 극이 맞닿아 있다면 회전하지 않는다. 입력은 톱니바퀴의 톱니에 대한 정보가 들어오고, 회전 횟수, 회전 톱니와 방향이 들어온다..
https://www.acmicpc.net/problem/23031 23031번: 으어어… 에이쁠 주세요.. 밤이 되면 어두워지는 다솔관에는 좀비가 나온다는 괴담이 있다. 그 좀비들의 정체는 바로 시험 기간에 공부하느라 지친 학생들이었다. 지친 학생들은 멀리서 보면 흡사 좀비이므로 학생 좀비 www.acmicpc.net 구현 문제다. 문제 설명 1. 아리는 (1, 1)에서 시작한다. 나는 (0, 0)으로 시작했다. 2. 아리와 좀비는 모두 아래 방향을 보고 시작한다. 3. 아리의 이동경로가 문자열로 주어진다. 4. 아리는 벽에 부딪히면 이동하지 않는다. 5. 좀비는 벽에 부딪히면 방향을 바꾼다. -> 위아래로만 움직인다. 6. 아리는 스위치를 만나면 해당 칸과 주변 8칸 총 9칸을 영구적으로 밝힌다. 7..
https://www.acmicpc.net/problem/4920 4920번: 테트리스 게임 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 표의 크기 N이 주어지고, 4 ≤ N ≤ 100을 만족한다. 둘째 줄부터 표에 쓰여 있는 숫자가 주어진다. 숫자는 절댓 www.acmicpc.net 구현 문제다. 설명 이런 테트리스 문제는 전에도 접한 경험이 있다. 이전에는 모든 모양에 대해 각각 반복문을 돌리는 방법으로 해결했다. 그러나 그건 코드적으로는 효율적이어도 너무 단순 노동이라는 생각이 들어 효율적으로 해결하고 싶었다. 여러 방법을 떠올려 보면서 남자친구에게서 좋은 방법을 얻었다. BFS에서 사용하던 툴을 이용하는 것이다. 배열의 칸에 대한 정보를 dr, dc 배열에 저..