반응형

개발 연습장/백준 문제풀이 221

[파이썬, Python] 백준 2217: 로프

문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) rope = sorted([int(input()) for i in range(n)], reverse = True) res = list() for i in rope: res.append(i * (len(res) + 1)) print(max(res)) 설명 우선 n과 로프의 값을 각각..

[파이썬, Python] 백준 1904: 01타일

문제 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 코드 n = int(input()) dp = [0] * 1000001 dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = (dp[i-1] + dp[i-2]) % 15746 print(dp[n]) 설명 경우의 수에 대해서 생각을 해보아야 한다. 우선 길이가 1인 경우는 1이 들어가는 1가지 경우밖에 없다. 길이가 2인 경우는 00 과 11 밖에 없다. 길이가..

[파이썬, Python] 백준 9655: 돌 게임

문제 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 코드 n = int(input()) if n % 2 == 0: print("CY") else: print("SK") n = int(input()) dp = [''] * 1001 dp[1] = "SK" dp[2] = "CY" dp[3] = "SK" for i in range(4, n+1): if dp[i-1] == "SK": dp[i] = "CY" else: dp[i] = "SK" print(dp[n]) 설명 [풀이 1] 간단하게 생각하면 쉽게 풀리는 문제이다. n이 홀수라면 상근이가, n이 짝수라면 창영이가 게임..

[파이썬, Python] 백준 1912: 연속합

문제 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 n = int(input()) num = list(map(int,input().split())) dp = [-1001] * (n+1) for i in range(n): dp[i+1] = max(num[i], num[i] + dp[i]) print(max(dp)) 설명 우선 입력을 각각 받아준다. 그리고 dp를 -1001의 n+1개로 초기화 해준다. 수의 범위가 -1000

[파이썬, Python] 백준 2156: 포도주 시식

문제 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 코드 n = int(input()) juice = [int(input()) for _ in range(n)] + [0] dp = [0] * (n+2) dp[1] = juice[0] dp[2] = dp[1] + juice[1] if n >= 3: for i in range(3, n+1): dp[i] = max(juice[i-1]+dp[i-2], juice[i-2] + juice[i-1] + dp..

[파이썬, Python] 백준 10867: 중복 빼고 정렬하기

문제 https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 n = int(input()) num = list(map(int, input().split())) ans = [] for i in num: if i not in ans: ans.append(i) for i in sorted(ans): print(i, end=' ') n = int(input()) num = set(map(int, input().split())) for i in sorted(num): print(i, ..

[파이썬, Python] 백준 2667: 단지번호붙이기

문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드 from collections import deque dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] n = int(input()) home = list() ans = [] def bfs(home, a, b): cnt = 1 queue = deque() queue.append((a, b)) home[a][b] = 0 while queue: x, y = queue.pop..

[파이썬, Python] 백준 1012: 유기농 배추

문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 코드 from collections import deque dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] t = int(input()) def bfs(land, a, b): queue = deque() queue.append((a, b)) land[a][b] = 0 while queue: x, y = queue.popleft() for i in range(4): nx = x+dx[i..

[파이썬, Python] 백준 15650: N과 M (2)

문제 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n, m = map(int, input().split()) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in range(start, n+1): if i not in s: s.append(i) dfs(i+1) s.pop() dfs(1) 설명 https://looancheong.tistory..

반응형