본문 바로가기

[ 알고리즘 ]36

[ c++ ] 공백 없이 입력받은 값을 2차원 배열로 만들기 위의 예시처럼 공백 없이 여러 줄 입력받은 값을 2차원 배열로 만들고 싶을 때 어떻게 해야 할지 헷갈려서 정리해보았다. 출처 : https://aeunhi99.tistory.com/160 int n, m; cin >> n >> m; string str; int input_arr[500][500]; for (int i=0;i> str; for (int j=0;j 2023. 6. 15.
[ BOJ 오답노트 ] 2156 파이썬 : 포도주 시식 2022 03 30 1. 틀린 기록 2. 원인 분석 - 아니 자꾸 '틀렸습니다'라는 결과만 나왔다. - 질문게시판의 반례들을 찾아보는 와중에 틀린 부분을 찾을 수 있었다. [ 수정 전 ] n = int(input()) drink = [0] dp = [0]*(n+1) for _ in range(n): drink.append(int(input())) if n == 1: print(drink[1]) else: dp[1] = drink[1] for i in range(2, n+1): dp[i] = max(dp[i-2], drink[i-1] + dp[i-3]) + drink[i] print(max(dp)) 반례 출처 : https://raejoonee.tistory.com/15 - 나머지 testcase에서는 올.. 2022. 3. 30.
[ BOJ 오답노트 ] 10844 파이썬 : 쉬운 계단 수 2022 03 29 1. 틀린 기록 2. 원인 분석 - 시간 초과 판정이 날 것이라고 생각은 했다. 왜냐하면 for문 두번에 모든 가능한 경우의 수를 구하고 dp 리스트에 저장하는 방식으로 풀었기 때문이다. n = int(input()) dp = [[] for _ in range(n+1)] # 인덱스 1에 저장된 배열은 길이가 1인 계단의 수 모음 dp[1] = [1, 2, 3, 4, 5, 6, 7, 8, 9] if n == 1: print(9) else: for k in range(2, n+1): for i in (dp[k-1]): if i % 10 == 0: str0 = str(i) + str(1) dp[k].append(int(str0)) elif i % 10 == 9: str9 = str(i) +.. 2022. 3. 29.
[ BOJ 오답노트 ] 2579 파이썬 : 계단 오르기 2022 03 24 1. 틀린 기록 2. 원인 분석 - 도저히 생각이 안났다. 일단 한 칸 오르고 또 한 칸 오르는 것이 불가능하다는 조건을 어떻게 따져야 할 지 고민이었다. - 맨 앞에서부터 따질 지, 맨 뒤에서부터 따질 지 고민했다. - 두 칸을 건너 뛰면 i의 값을 +2 해주어야 하는지 등 고민을 했고, 문제가 풀리지 않아서 다른 분들의 정답 코드를 확인했다. 3. 해결 import sys input = sys.stdin.readline n = int(input()) stairs = [0] # 1번부터 n번까지의 index를 사용하기 위해서 dp = [0]*(n+1) for _ in range(n): stairs.append(int(input())) if n == 1: print(stairs[1]).. 2022. 3. 24.