목록Python (6)
Seeeni Tech Diary
1. 문제 https://www.acmicpc.net/problem/20914 20914번: QWERTY 자판 Albert는 QWERTY 키보드를 이용해 (위 그림 참고) 영문 대문자로 ('A'-'Z') 구성된 문자열을 입력하고 싶다. 아직 키보드 만지는 것이 서툰 Albert는 왼쪽 검지만을 이용해 버튼을 누르는 버릇이 있다. www.acmicpc.net 2. 문제 풀이 알고리즘 1) QWERTY 좌표 딕셔너리 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M QWERTY 키보드를 왼쪽으로 정렬하면 위의 표와 같이 되는데, 이 좌표를 그대로 qwerty 딕셔너리에 저장해준다. qwerty = {"Q": [0, 0], "W": [0, 1], ... , "A": ..
0. 시험공부하다가 합당한 사유로 놀고 싶어지다. 써야지 써야지 하면서 미루다가 8월이 와버렸다. 더 이상 미루다가는 잊어버릴 것 같아서 오늘 쓰게 되었다. 6월 14일 밤, 금요일에 있을 시험을 대비하기 위해 공부를 하고 있었다. 고급 데이터 처리 기말 고사를 해야하는데, 고급 데이터 처리 과목의 시험 범위는 크게 리눅스 명령어와 데이터 전처리 및 간단한 인공지능 학습으로 나눌 수 있었고, 나는 선택과 집중을 해보자는 생각으로 조금 더 자신 있는 데이터 전처리에 올인하였다.(시험 자체는 결과적으로 완전 망했다... 왜냐하면 리눅스 명령어만 80퍼가 나왔고 데이터 전처리는 실습 문제가 단 한 문제도 나오지 않았다...) 작년 인공지능 과목에서는 데이터 전처리에 대해 중점적으로 다루지는 않았어서 이미지 데..
1. 문제 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 2. 문제 풀이 알고리즘 N x M 칸에 치즈가 놓여있는데, 1이 치즈, 0이 공기를 나타낸다. 치즈 한 칸은 상하좌우 중 공기와 닿는 부분이 2칸 이상 있으면 녹게 된다. 치즈가 모두 녹았을 때의 시간을 구해야 하는 문제이다. 빙산이 녹을 때를 구하는 문제와 차이점은 치즈의 내부 공기는 치즈를 녹는 데에 영향을 줄 수 없다는 것이다. 따라서 치즈의 내부 공기와 외부 공기를..
1. 문제 https://www.acmicpc.net/problem/17143 2. 문제 풀이 알고리즘 R x C 칸에 상어가 m마리가 있고 상어는 각각 한 칸을 차지하고, 1초 동안 움직이는 속도 s, 방향 d에 따라서 d방향으로 1초 동안 s칸만큼 이동한다. 벽에 닿을 시에는 방향을 반대방향으로 움직인다. 낚시왕은 1번 열부터 시작하여 C열에 도달할 때까지 한 열에 있는 상어 중 가장 가까운 상어를 잡는다. 열을 한 번 움직일 때마다 1초가 소요된다. 이때 낚시왕이 C열에 도달하여 움직임을 멈출 때까지 잡은 상어의 크기의 합을 구해야한다. 이 문제를 해결하기 위해서는 현재 열에서 가장 가까운 상어를 찾음 → 상어를 잡음 → 남은 상어를 이동 이 세 가지를 모두 구현해야 한다. 3. 구현 1) 입력 받..
1. 문제 https://www.acmicpc.net/problem/2146 N X N 사이즈의 지도를 입력을 받게 되는데, 이 때 바다를 0, 육지를 1로 나타내고 섬은 바다로 둘러쌓인 영역 각각을 의미하게 된다. 이때 섬 두개를 잇는 가장 짧은 다리의 길이를 구해야한다. 다리는 가장 짧게 만들 수 있는 두 섬에 한하여 만들면 된다. 2. 문제 풀이 알고리즘 예제의 입력을 보면 섬들의 육지 영역은 모두 1로만 표시되어 있어서 임의의 육지 영역 하나를 골랐을 때 이 영역이 어떤 섬의 땅인지 구분할 수가 없다. 하지만 서로 다른 두 섬을 연결하는 다리를 만들어야해서 육지 영역을 어떤 섬의 것인지 구분해주어야 한다. 그래서 처음으로 구현할 것은 섬 영역을 나누어주는 것이다. 육지 영역을 1이라는 숫자로 통일..
1. 문제 https://www.acmicpc.net/problem/11729 문제는 하노이 탑을 최소 이동으로 3번째 탑으로 옮겼을 때의 이동 횟수와 그 과정을 출력하는 것이다. 이 문제를 해결하기 위해서는 먼저 하노이 탑의 원반이 어떻게 이동을 해야하는 지부터 알아야 한다. 2. 하노이 탑 이동 알고리즘 하노이 탑이 최소 이동하였을 때를 보면 위 그림과 같은 규칙을 갖고 있다. 원판이 총 5개 일 때를 예시로 들면, 3번째 탑으로 모두 옮기고 싶으면 첫 번째 원판(제일 큰 거)을 3번째로 옮기고 나머지 4개의 원판 기둥은 두 번째 탑으로 옮기게 된다. 두 번째 원판을 세 번째 탑으로 옮기려면 나머지 3개의 원판 기둥을 첫 번째 탑으로 옮기게 된다. 3. 코드 작성 import sys n = int(s..