구현(5)
-
백준 컨베이어 벨트 위의 로봇 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 각 칸의 내구도를 belt, 로봇이 있는 칸의 인덱스를 robots에 저장한다. 1-4 각 과정을 함수로 만들어 매 단계마다 반복한다. 먼저 컨베이어 벨트의 회전은 벨트와 그 위의 로봇이 이동해야 한다. 벨트의 회전은 큐를 이용해 구현했고, 로봇의 이동은 인덱스를 하나씩 증가시키는 것으로 구현했다. 이때 마지막 인덱스에 로봇이 있는 경우 +1이 아니라 처음 칸인 0으로 가야하..
2021.11.08 -
백준 미세먼지 안녕! 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 미세먼지의 양과 그 위치를 확인하는 함수, 미세먼지의 확산을 구현하는 함수, 공기청정기의 윗부분과 아랫부분의 확산을 구현하는 함수를 만들어 매 초마다 이 함수들을 실행해주었습니다. 미세먼지의 양과 위치를 확인하는 함수는 전체 방의 원소를 확인하면서 원소가 0보다 크면 위치와 양을 튜플로 저장했습니다. (행, 열, 미세먼지 양) 미세먼지의 확산을 구현하기 위해서 상하좌우가 방 안에 있고, 공기청정..
2021.11.03 -
백준 치킨 배달 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 국어 능력이 중요한 거 같은 복잡한 문제!!!! 우선 입력으로 들어온 걸 잘 정리해서 저장해둔다 N은 도시 크기, M은 최종 선택할 치킨 가게 개수, houses엔 집이 있는 좌표를 튜플로, stores엔 치킨 가게가 있는 좌표를 튜플로 저장한다. 이때 좌표는 0이 아니라 1부터 시작한다고 했으므로 그냥 +1씩 해줬다. 이후 각 집마다 각 치킨 가게까지의 거리를 구했다. 이를..
2021.09.02 -
백준 뱀 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 문제 설명이 좀 불친절하지 않나?? 그렇지 않나??!?! 뱀이 너무 이상하게 움직여서 짜증나는 문제였다. 뱀이 자기자신의 몸과 부딪히는게 어떤 상황인건지 한참 고민했다. 다음 이동할 곳으로 (무리하게!) 먼저 머리 먼저 옮기는데 그 곳에 지 몸이 있으면 부딪히는 거구만 으이구 먼저 보드 크기, 사과 개수, 사과 위치, 방향 전환 시점 및 방향 등 필요한 정보를 모두 받아 변수에 저장한다. 보드는 0~ (..
2021.08.24 -
백준 럭키 스트레이트 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 주어진 숫자를 절반으로 갈라 오른쪽, 왼쪽으로 나누고, 오른쪽 자릿수의 합과 왼쪽 자릿수의 합이 같은지 다른지 확인한다. 정말 쉬운 문제였는데 이상하게 평소처럼 sys.stdin.readline()을 쓰니 UnicodeError였나? 무슨 에러가 나서 헤맸다. 이상하네??? x = input() half = len(x) // 2 right = sum([int(num) for num in x[:half]]) left = sum([int(num) fo..
2021.08.24