코테 준비/구현
-
[백준] 8979. 올림픽코테 준비/구현 2024. 2. 8. 17:45
순위 매기는 것 때문에 헷갈렸다 조금... n,k=map(int,input().split()) medal=[] for i in range(n): n,gold,silver,bronze=list(map(int,input().split())) medal.append([n,gold,silver,bronze]) medal.sort(key=lambda x:(-x[1],-x[2],-x[3])) //금.은.동 순서로 정렬 cnt=1 medal[0].append(1) for i in range(1,len(medal)): cnt+=1 if medal[i-1][1:4]==medal[i][1:4]: medal[i].append(medal[i-1][-1]) # 메달 수가 같으면 순위 유지 else: medal[i].append..
-
[백준] 10431. 줄세우기코테 준비/구현 2024. 2. 8. 13:58
난이도 쉬운편. 단순 구현 p=int(input()) answer=[] for i in range(p): cnt = 0 heights = [] h=list(map(int,input().split())) heights.append(h[1]) for j in range(2,21): if h[j]h[j]: heights.insert(idx,h[j]) cnt+=len(heights)-idx-1 break else: heights.append(h[j]) answer.append((h[0],cnt)) for a,b in answer: print(a,b)
-
프로그래머스_삼각달팽이코테 준비/구현 2023. 12. 9. 18:05
달팽이 알고리즘! i: 이동 방향 바꾼 횟수 i%3==0 -> 밑으로 이동 (x+=1) i%3==1 -> 오른쪽으로 이동 (y+=1) i%3==2 -> 위로 이동(x-=1, y-=1) def solution(n): answer = [[0]*i for i in range(1,n+1)] x,y=-1,0 num=1 for i in range(n): for j in range(i,n): if i%3==0: # 아래 x+=1 elif i%3==1: # 오른쪽 y+=1 else: x-=1 y-=1 answer[x][y]=num num+=1 return [j for i in answer for j in i]
-
재귀_하노이의 탑 알고리즘코테 준비/구현 2023. 12. 8. 22:04
hanoi(N, start, to, via): start에서 to로 via를 거쳐 총 N개의 원반을 운반할 때 hanoi(3, ‘A’, ‘C’, ‘B’): 3개의 원반을 A에서 C로 B를 거쳐 옮기는 과정 hanoi(2,'A,',B','C'): 우선 두개의 원반을 B로 옮겨놓고 3번 원반을 C로 옮겨야함 hanoi(2, ‘B’, ‘C’, ‘A’): 3번 원반을 C로 옮긴 후 B에 있는 2개의 원반을 C로 옮김 해당 알고리즘을 토대로 코드를 작성해보면 def move(n,start,to): print("{}에서 {}로 이동".format(n,start,to)) def hanoi(n,start,to,via): if n==1: move(1,start,to) else: hanoi(n-1,start,via,to)..
-
[백준] 1916. 최소비용 구하기 (다익스트라 알고리즘)코테 준비/구현 2023. 10. 13. 19:27
다익스트라(dijkstra) 알고리즘 : start 지점에서 다른 정점까지의 최단 경로를 찾는 알고리즘 1. 노드의 개수, 간선의 개수를 입력 받는다. 2. 시작 노드 번호를 입력 받는다. 3. 시작 노드 번호에서 다른 노드로 가는 각각의 최단 거리를 출력한다. import heapq import sys n=int(sys.stdin.readline()) m=int(sys.stdin.readline()) graph=[[] for _ in range(n+1)] distance=[int(1e9)]*(n+1) # 최단거리 테이블 무한으로 초기화 for _ in range(m): start,end,price=map(int,sys.stdin.readline().split()) graph[start].append((..
-
[프로그래머스] 셔틀버스코테 준비/구현 2023. 3. 2. 21:47
오답 while문으로 안하고 for문으로 돌리게 되면 10, 25, 1, ["09:00", "09:10", "09:20", "09:30", "09:40", "09:50", "10:00", "10:10", "10:20", "10:30", "10:40", "10:50"] 이런 테스트 케이스를 통과하지 못한다. 왜냐하면 크루가 탈 수 있는 경우에만 다음 크루원으로 넘어가야하는데 for문을 쓰게 되면 크루가 탈 수 없어도 무조건 timetable 리스트를 끝까지 돌게 되기 때문이다. import datetime def solution(n, t, m, timetable): shuttle=[540+t*i for i in range(n)] time=[] for i in timetable: time.append(int..