본문 바로가기
[Algorithm] 백준 13300 방 배정 (Python) https://boj.kr/13300이 문제는 그리 어렵지 않은 문제지만, 여러가지 해법이 있는게 재미있어서 글을 쓰게 되었습니다. 문제는 읽었다고 가정하고 진행하겠습니다.어떤 그룹에서 사람 수를 N이라고 합시다. (음이 아닌 정수)1. 사람 수를 K로 나눈 몫을 더하고, 나머지가 있는 경우 1을 더하기인터넷을 찾아 보면 가장 일반적이고, 생각하기 쉬운 풀이입니다.students = [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]으로 초기화하고,반복문을 통해 입력으로 S, Y를 받아 students[S][Y] += 1 해준 뒤마지막에 반복문에서 각 배열값을 K로 나눈 몫과 나눴을 때 나머지가 있는 경우 1을 더한 값을 답에 더합니다.2. 실수형으로 나누고 올림(ceill)각 배열.. 2025. 3. 30.
[Algorithm] 백준 13787 Infinity Maze https://www.acmicpc.net/problem/13787 백준에서 문제 찾아보다가 이름이 맘에 드는 문제를 발견했습니다. 재작년에 출시한 게임 iMaze와 같은 이름! 너무 반가워서 바로 풀어보았습니다. 문제가 영어로 되어있어서 우리말로 풀어볼게요. 문제 후쿠오카 박사는 2D 미로에 간단한 로봇을 배치시켰습니다. 미로는 출구가 없어서 로봇이 밖으로 나갈 수 없습니다. 아래 그림처럼 H x W 격자 셀로 만들어졌고, 미로의 위, 오른쪽, 아래, 왼쪽은 각각 북(N), 동(E), 남(S), 서(W)쪽입니다. 각 셀은 벽(#)이거나 빈 공간(.)이고, 좌표 (i, j)에 대해 i는 남쪽으로 갈수록 커지고, j는 동쪽으로 갈수록 커져서, 가장 왼쪽 위부터 (1, 1), 가장 오른쪽 아래는 (H, W).. 2024. 2. 15.
[Algorithm] 백준 17114 하이퍼토마토 - 구데기같지 않은 풀이 (C++) https://www.acmicpc.net/problem/17114 구데기컵에 출제된 문제입니다. 구데기같이 11중 반복문과 BFS를 통해서 풀 수 있습니다. (물론 그게 아주 정상적인 방법입니다.) 하지만 차원 확장에 대해 조금 더 생각해보면 규칙을 발견할 수 있고, 11차원 뿐만 아니라 자연수 n에 대해 일반적으로 답을 낼 수 있습니다. 코드도 아주 짧아져서 숏코딩에 도전할 수도 있죠. 이 글에서는 제가 며칠 동안 삽질하면서 발견한 꽤 아름다운(?) 풀이를 설명하려 합니다. 관련 지식은 BFS만 알고 계시면 됩니다만, 꽤 인내심이 필요할 것 같습니다. 제가 부족한 탓에 쉽게 설명을 못하겠더라구요. 1. 토마토 배열을 일차원으로 표현 2차원(평면)은 1차원(선)을 모아놓은 것이고, 3차원은 2차원을 모.. 2022. 6. 14.