목록코딩테스트 (130)
코딩하는 해맑은 거북이
해당 글은 백준 2178번 문제 '미로 탐색'을 다룬다. 문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 설명 BFS로 이동할 수 있으면 +1 씩 더해서 총 이동거리를 계산하였다. 그리고 마지막 행렬의 [n-1][m-1] 인덱스의 값이 최소 이동 칸 수 이다. 코드 from collections import deque def bfs(x, y): q = deque() q.append((x, y)) while q: x, y = q.popleft() for i in range..
해당 글은 백준 16234번 문제 '인구 이동'을 다룬다. 문제 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 설명 모든 나라의 위치에서 상하좌우 국경선을 열 수 있는지 확인해야하므로 BFS/DFS로 문제를 풀어야 한다. 해당 코드는 BFS로 풀었으며, while문의 종료조건으로 각각의 나라가 다른 index를 가진다면 즉, index의 값이 n*n이 되면 break한다. 코드 from collections import dequ..
해당 글은 백준 1475번 문제 '방 번호'를 다룬다. 문제 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 설명 숫자 6은 숫자 9로 바꿔쓸 수 있고, 숫자 9는 숫자 6으로 바꿔쓸 수 있으므로 숫자 6과 9의 합을 2로 나눈 몫 값과 나머지 값을 더한 값이 숫자 6, 9를 나타낼 수 있는 총 숫자셋트 값이다. 그러므로 배열의 숫자 6, 9의 값을 하나는 0, 하나는 숫자셋트값으로 업데이트 한 후 배열의 가장 큰 값이 필요한 숫자셋트이다. 코드 s = list(input()) arr = [0 for i in range(10)] for i i..
해당 글은 프로그래머스 문제 '점 찍기'를 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 처음에는 2중 for문으로 해결하려했으나, 시간초과로 많은 시간을 쓴 문제이다. 최종적으로는 1개의 for문을 사용해서 해결해야 하는 문제이다. 이는 원점을 중심으로 반지름 d를 가지는 원을 그려보면 이해가 된다. 각각의 x에 대한 y의 최대값을 구하고, x는 k씩 증가하므로 (k로 나눠준 값 + 1)을 하면 정답을 구할 수 있다. ..