백준 / 10026번 / 적록색약 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/10026 나의 풀이import syssys.setrecursionlimit(10000)input = sys.stdin.readlinen = int(input())grid = [list(input().strip()) for _ in range(n)]visited = [[False] * n for _ in range(n)]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def dfs(x, y, color, board): visited[x][y] = True for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 DFS/BFS로 풀..
백준 / 2470번 / 두 용액 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2470 나의 풀이n = int(input())sol = list(map(int, input().split()))sol.sort()start = 0end = n - 1min_solution = float('inf')while start 0: end -= 1 else: breakprint(result[0], result[1]) 투 포인터를 사용해 두 용액의 합이 0에 가까운 값을 찾을 수 있습니다. 두 용액의 합 s의 절댓값이 현재까지의 최솟값보다 작으면 결과를 갱신하며 최적의 답을 구할 수 있습니다.
백준 / 10844번 / 쉬운 계단 수 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/10844 나의 풀이n = int(input())dp = [[0] * 10 for _ in range(n + 1)]for i in range(1, 10): dp[1][i] = 1for i in range(2, n + 1): for j in range(10): if j == 0: dp[i][j] = dp[i - 1][1] elif 1 이 문제는 인접한 수의 차이가 1인 수를 계단수라고 하고, 길이가 N인 계단 수의 개수를 구하는 문제로, DP를 사용하여 풀 수 있습니다.dp[i][j]를 길이가 i, 마지막 숫자가 j인 계산 수의 개수로 정의하면, 계단 수 조건을 만족하기 위해..
백준 / 1012번 / 유기농 배추 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/1012 문제차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다.한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에..
백준 / 5347번 / LCM / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/5347 문제두 수 a와 b가 주어졌을 때, a와 b의 최소 공배수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다. 출력각 테스트 케이스에 대해서 입력으로 주어진 두 수의 최소공배수를 출력한다. 예제 입력 1 315 2133 229 10 예제 출력 1 1056690나의 풀이import sysimport mathinput = sys.stdin.readlinen = int(input())for _ in range(n): a, b = map(int, input().split())..
백준 / 9465번 / 스티커 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/9465 문제상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다.모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스티커에 점수를 매겼다. 상냥이가 뗄 수 있는 스티커의 점수의 최댓값을 구하는 프로그램..
백준 / 1976번 / 여행가자 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/1976 문제동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할 수 있다.도시들의 개수와 도시들 간의 연결 여부가 주어져 있고, 동혁이의 여행 계획에 속한 도시들이 순서대로 주어졌을 때 가능한지 여부를 판별하는 프로그램을 작성하시오. 같..
백준 / 2138번 / 전구와 스위치 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2138 문제N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 N개의 전구들의 현재 상태와 우리가 만들고자 하는 상태가 주어졌을 때, 그 상태를 만들기 위해 스위치를 최소 몇 번 누르면 되는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 전구들의 현재 상태를 나타내는 숫자 N개가 공백 없이 주어진다. 그 다음 줄에는 우리가 만들고자 하는 전구들의 상태를 나타내는 숫자 N개가 공백 없이 주어진다. 0은 켜져 있는 상태, 1은 꺼져 있는 상태를 의미한다. 출력 첫째 줄에 답을 출력한다. 불가능한 경우..