본문 바로가기

Problem Solving/BOJ51

[Python] 15686. 치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 순열로 완전탐색하여 도시 치킨거리를 구한다. def next_perm(a): i = len(a)-1 while i > 0 and a[i-1] >= a[i]: i -= 1 if i = a[j]: j -= 1 a[i-1], a[j] = a[j], a[i-1] j = len(a)-1 while i < j: a[i], a[j] = a[j], a[i] i += 1 j -= 1 retu.. 2021. 4. 8.
[Python] 14499. 주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 시뮬레이션 문제이다. 키 포인트는 주사위 전개도를 배열로 치환하기 문자열 slicing으로 동서남북 이동 결과 리턴 주의할 점은 최초 입력값 받을 때 x,y가 아닌 y,x로 입력을 받아야 한다. def east(dice): return list(str(dice[0])+str(dice[5])+str(dice[2])+str(dice[4.. 2021. 4. 7.
[Python] 13458. 시험 감독 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net N이 백만 이하이므로 loop로 전체 검사해준다. 단, A[i]보다 B가 크거나 같을 경우에는 건너뛴다. Task Score 100% Detected time complexity O(N) N = int(input()) A = list(map(int, input().split())) B, C = map(int, input().split()) .. 2021. 4. 4.
[Python] 3190. 뱀 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 완탐실시하였다. 방향이 전환될 때의 좌표와 방향을 Queue에 저장하는 것이 포인트. Task Score 100% def solve(MAP): global N curr_head_y = curr_head_x = 0 curr_tail_y = curr_tail_x = 0 curr_head_di = 0 curr_tail_di = 0 turn_point = [] time = 0 while True: if time.. 2021. 4. 3.
[Python]3678. 카탄의 개척자 https://www.acmicpc.net/problem/3678 3678번: 카탄의 개척자 문제 "카탄의 개척자"는 많은 사람들이 즐기는 보드게임이다. 게임을 시작하려면, 먼저 게임판을 랜덤으로 만들어야 한다. 게임판은 육각형 타일로 이루어져 있으며, 각 타일은 자원을 하나씩 포함하고 있다. 자원은 총 다섯 가지 종류가 있으며, 점토, 재목, 양모, 곡물, 광석이다. 각 자원은 1부터 5까지 순서로 나타낼 수 있다. 랜덤을 이용해서 게임판을 만들면, 같은 자원이 인접한 타일에 있는 경우가 있을 수도 있다. 이런 배치를 매우 싫어하는 사람이 많다 www.acmicpc.net 처음에 개념잡는데 너무너무 오래걸렸다(...) 그래도 어려웠던 만큼, 공부는 진짜 많이 되었던 문제였다 :) 그리고 Python 최.. 2019. 5. 11.
[Python]13460. 구슬 탈출 2 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 어느 방향으로 기울이는가에 따라 queue에 Red와 Blue의 좌표를 초기화 해주어야 한다.(중요!) 또한 현재 Red 와 B.. 2019. 5. 10.
[Python]14502. 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. www.acmicpc.net 문제를 풀기전에 제약조건을 먼저 확인하고 경우의수를 계산해본다. 3 ≤ N, M ≤ 8 이고 벽은 3개를 배치하므로, N*M Combina.. 2019. 5. 9.
[Python]12100. 2048 (Easy) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 브루트포스문제라고 생각하며 재귀호출을 통해서 모든 경우의 수를 탐색한다. 매 move마다 check 배열을 생성해서 병합이 되어있는지 안되어있는지 검새를 해주는 것이 포인트 이다. 현재 자신의 위치와 다음 위치 모두가 병합된 적이 없어야만 병합을 시켜준다. 또한, 네가지 방향으로.. 2019. 5. 8.
[Python]1248. 맞춰봐 https://www.acmicpc.net/problem/1248 1248번: 맞춰봐 문제 규현이는 멍청하다. 왜냐하면, 1~10까지 수 밖에 모르기 때문이다. 어느날 규현이 옆을 지나가던 태석이가 규현이를 보고 이렇게 외쳤다. "빵빵!!" 규현이는 "아하!" 하면서 세상에는 빵이란 수도 있구나 했다. 그날 이후로 규현이는 매일 친구들을 볼 때면 "빵빵!!" 거리면서 인사를 했다. 규현이의 친구 중에는 태방이가 있다. 자꾸 규현이가 "빵빵!!" 거릴때 마다 자신을 놀리는 것 처럼 생각했던 태방이는 규현이에게 그건 "빵이 아니고 영이야" 라 www.acmicpc.net 12345678910111213141516171819202122232425262728293031323334353637383940414243.. 2019. 4. 22.
728x90
반응형