코딩 테스트 챌린지

[10월 코테 챌린지] 백준 1차 :: 누적 172개 / (실버3) 14501. 퇴사 (실버1) 1697. 숨바꼭질

  • -
728x90
반응형

2024/10/16

[Today]
백준 1차 :: 누적 172개 / (실버3) 14501. 퇴사 (실버1) 1697. 숨바꼭질

[전체 코딩 테스트 문제 풀이 과정]
•  프로그래머스 :: 누적 372개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 53개 (Lv3) 10개
백준 1차 :: 누적 172개 / (브론즈1) 13개 (브론즈2) 23개 (브론즈3) 26개 (브론즈4) 9개 (브론즈5) 37개 (실버1) 4개 (실버2) 6개 (실버3) 10개 (실버4) 19개 (실버5) 18개 (골드1) 1개 (골드5) 1개 
SW expert academy:: 누적 15개 / D1 6개 D2 9개

 


풀이한 문제

백준 실버3
14501번: 퇴사 (acmicpc.net)

실버1
1697번: 숨바꼭질 (acmicpc.net)


문제 풀이

백준 실버3
14501번: 퇴사 (acmicpc.net)

n = int(input())
ls = [list(map(int,input().split())) for i in range(n)]

best = [0]*(n+1) #그래서 이게 8이구나..

for i in range(n-1,-1,-1): #뒤부터
    time = ls[i][0] #2 1
    pay = ls[i][1] #15 20
    
    if i + time <= n: #4+2 <= 7 / 3+1<7 / 2
        best[i] = max(best[i+1],pay+best[i+time]) #하는 경우와 안하는 경우 / max(0,15+0) max(15,20+15)
    else: #6+2 > 7 / 5+4 > 7 / 
        best[i] = best[i+1] #[0,0,0,35,15,0,0,0]

print(best[0])

실버1
1697번: 숨바꼭질 (acmicpc.net)

from collections import deque

def find(nn,kk):
    if nn>kk:
        return nn-kk
    maxx = 100000
    visited = [-1]*(maxx+1)
    visited[nn] = 0 #현재 위치

    dd = deque([nn])
    while dd:
        now = dd.popleft() #업데이트 위치
        can = [now-1,now+1,2*now]
        for dot in can:
            if 0<=dot<=maxx and visited[dot] ==-1:
                visited[dot] = visited[now]+1
                dd.append(dot)
                if dot == kk :
                    return visited[kk]
    return visited[kk]
nn,kk = map(int,input().split())
print(find(nn,kk))

미완성 문제

프로그래머스  Lv2

  1. 다리를 지나는 트럭
320x100
728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.