목록ALGORITHM (82)
정구리의 우주정복
#10972 다음 순열 def next_permutation(a): i = len(a)-1 while i > 0 and a[i-1] >= a[i]: i -= 1 if i
www.acmicpc.net/problem/13424 13424번: 비밀 모임 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 방 www.acmicpc.net 다익스트라 문제 ! 사실 플로이드 와 ~ 샬로도 풀수있지만 나는 플로이드 와 ~~샬 하는법 몰라서 그냥 다익스트라로 풀었다 import sys import heapq INF = int(1e9) input = sys.stdin.readline def die(start): q = [] heapq.heappush(q,(0,start)) distence[start] = 0 while q: dist,now = heapq..
문제가 재밌어서 가져왔다 www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net #2437 저울 import sys input = sys.stdin.readline n = int(input()) arr = list(map(int,input().split())) arr.sort() num = 1 for i in range(n): if num
최단경로 알고리즘엔 크게 두가지 종류가 있다 1. 한지점 -> 다른지점 최단경로 2. 모든지점 -> 다른 모든지점 최단경로 1번은 주로 다익스트라를 이용해서 풀고 2번은 플로이드 워셜 을 이용해서 푼다고 한다 근데 나는 어려운건 잘 못해서 오늘은 다익스트라만 하려고 한다 다익스트라 알고리즘 알고리즘에서는 그리디로 분류한다 한마디로 모든곳을 방문방문 하면서 제일 작은 값을 찾아내는 거임 과정은 1) 출발 노드 설정 2) 최단거리 테이블을 초기화 3) 방문하지 않은 노드 중에서 최단거리가 짧은 노드 선택 4) 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단거리 테이블을 갱신 5) 위 과정에서 3과 4를 반복 이 과정을 그림으로 이해해보자 (발그림 ㅈㅅㅈㅅ) 나름 열심히 써봤는데 .. 암튼 이런 과정..
programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 난이도 1이라고 하는데 ㅋㅋ 거 짓 말 쟁 이 들 처음엔 계수정렬 쓰려다가 안되길래 다르게 풀었는데 zero divisor 을 생각을 못해서 잔뜩 틀렸다 #실패율 def solution(N,stages): answer = [] total = len(stages) for i in range(1,N+1): count = stages.count(i) if total == 0: fa..
되게 좋은 문제인것 같아서 올린당 www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net #국영수 n = int(input()) array = [] for i in range(n): data = input().split() array.append((data[0],int(data[1]),int(data[2]),int(data[3]))) array.sort(key = lambda x: (-int(x[1]),int(x[2]),-int(x[3]),x[..
보호되어 있는 글입니다.
x = input().split('-') num = [] #새 숫자가 들어갈 list #print(x) for i in x: count = 0 sp = i.split('+') #print(sp) for j in sp: count += int(j) num.append(count) result = num[0] for j in range(1,len(num)): result -= num[j] print(result) 중요한것은 + 가 나오는 부분에 괄호를 쳐야한다는것을 파악해야함 ! 그리고 -를 기준으로 나눠주는것 또한 중요하다