문제 www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 풀이 및 소스코드 편의상 1번째 계단에 대한 점수는 stiars[1]에 있는 것처럼 설명했지만, 코드 짤때는 stairs, dp 모두 0~n-1 인덱스로 초기화했다! import sys input = sys.stdin.readline n = int(input()) stairs = [] dp = [] for i in range(n): stairs.append(int(input())) if n==1: print(stair..
문제 www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 풀이 및 소스코드 첫 번째와 두 번째 if 문을 통해 dp의 범위를 정할 수 있다. 0보다 작으면 1로 리턴해주고, 20보다 크면 w(20,20,20)으로 통일해주기때문에 dp 는 3차원 모두 다 0~20 까지만 초기화시켜놓으면 된다. 그리고 dp 값이 존재하면 바로 리턴, 없다면 구하고 리턴하면 된다. 쉬웠당 ㅎㅎ ㅎ dp 실버 2인데 쉬웠다니 .. 나 쫌 늘은건가?.. 착각이겠지 ,,, 흑 ㅠ import..
문제 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 풀이 문제 이해를 진짜 이상하게 했다... ㅠ 위의 설명과 같이 컨베이어 벨트는 2N 만큼 회전하지만, 로봇은 N자리에서 out 하기 때문에 N만큼만 회전한다는 사실 그리고 이 원리만 이해한다면 문제에서 나온 그대로 풀면 된다. 소스코드 import sys input = sys.stdin.readline from collections import deque n, k = map(int,..
문제 www.acmicpc.net/problem/12865 풀이 및 소스코드 suri78.tistory.com/2 [백준알고리즘] 12865번: 평범한 배낭 -Python [백준알고리즘] 12865번: 평범한 배낭 -Python https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진.. suri78.tistory.com 이 분 티스토리를 참고했다. 원래는 입력을 받으면서 그때 그때 비교해주려고 하였으나, 틀렸다고 나온다. 그래서 w, v를 모두 입력 받고, 한 번에 비교해주었다. 저 위 티스토리를 보면 아주 잘 이해할 수 있다 ! import sys..
문제 www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 풀이 및 소스코드 서로다른 자연수 N개의 합이 S일 때, N의 최댓값을 구하는 문제이다. N의 최댓값을 구하기 위해서는 1부터 N까지 더하되, 합계가 S와 같으면 그냥 출력, S보다 커지면 N-1출력 해주면 된다. n = int(input()) pos = 1 res = 0 while True: res += pos if res > n: print(pos-1) break elif res == n: print(pos) break pos += 1
문제 www.acmicpc.net/problem/14494 14494번: 다이나믹이 뭐예요? (1, 1)에서 (n, m)에 도달하는 경우의 수를 구하여라. 단, 경우의 수가 엄청 커질 수 있으므로 경우의 수를 1,000,000,007(=1e9+7)로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 및 소스코드 그야말로 dp 그대로 풀었다. n, m = map(int, input().split()) dp = [[0]*(m+1) for _ in range(n+1)] dp[1][1] = 1 for y in range(1, n+1): for x in range(1, m+1): dx = x+1 dy = y+1 if 0
문제 www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 풀이 및 소스코드 처음엔 bfs로 arr[n-1][n-1]까지 가는 경우의 수를 구해주려 했으나 메모리 초과가 떴다 ㅠㅠㅠ 코드는 아래와 같았다. import sys from collections import deque input = sys.stdin.readline n = int(input()) arr = [list(map(int, input().split())) for _ in range(n..
문제 www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 풀이 그냥 문제에서 하라는대로 해주면 된다 ,, 쉽따 .. 소스코드 import sys input = sys.stdin.readline def add(x): if x not in arr: arr.append(x) def remove(x): if x in arr: index = arr.index(x) arr.pop(index) def check(x): if x in arr: print("1") else: print("0") def toggle..
- Total
- Today
- Yesterday
- 파이썬
- 백준 dp 문제
- 1240 자바
- 프로그래머스
- ubuntu
- 백준 17144
- swea 타일링 자바
- 백준 풀이
- 우분투
- swea 4070 타일링
- poker swea
- 백준파이썬
- 프로그래머스 파이썬
- 더 맵게
- 3996 자바
- SWEA
- swea 타일링
- 프로그래머스 더 맵게
- swea 1240 자바
- 메뉴리뉴얼 풀이
- SSAFY
- 프로그래머스 자바
- 파이썬 풀이
- 백준
- 타일링 자바
- 1699 자바
- 삼성청년SW아카데미
- swea 1240
- yoloV3
- union-find
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |