https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 1. 접근 방식 문제를 읽으면서 필요한 함수를 미리 주석으로 기록해놓자 구현 문제이다. 지문이 길기 때문에 문제를 읽으면서 이전 내용이 휘발될 수 있다. 따라서 먼저 주석으로 어떤 역할을 하는 함수가 필요한지 작성해 놓았다. 나중에 문제를 풀 때 길을 잃지 않는 데 도움이 됐다. 또한 지문을 읽으며 필요한 함수들을 미리 정의했기 때문에 이후 구현은 간단하다. 문제를 이해하는 게 관건인 문제..
https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 1. 접근 방식 딕셔너리를 적극 사용하자 학생이 좋아하는 학생들을 담는 survey 딕셔너리, (딕셔너리는 순서가 없으므로) 학생이 입력된 순서를 저장하는 order 딕셔너리, 학생이 앉은 최종 자리를 담는 decided 딕셔너리를 만들었다. 첫 번째 조건: 학생이 좋아하는 학생들과 인접한 칸을 찾는다. 좋아하는 학생이 앉은 위치를 찾을 때 '학생이 앉은 최종 자리를 담는 decided..
https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 1. 접근 방식 deque()를 사용해서 배열을 line으로 접근하자. 위 그림처럼 배열을 line으로 접근한다. 사각형 한 줄이 하나의 line인 것이다. line을 만들기 위해서는 인덱스 처리를 통해 for문으로 배열을 색깔별로 접근하면 된다. 하나의 라인을 만들기 위해 4개의 방향으로 접근한다. 각..
https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 1. 접근 방식 각 연산을 처리하는 함수를 구현하자. 각 함수는 인자로 기존 배열을 받고, 연산을 적용한 결과(배열)을 반환한다. 함수 내부에서 일어나는 일이 외부에 영향을 끼치고 싶지 않았기 때문에 이와 같이 배열을 인자로 받고, 새 배열을 반환하는 방식으로 구현하고자 한다. 인덱싱과 리스트 comprehension을 ..