어디까지 갈 수 있을까?
문제링크 www.acmicpc.net/problem/18238 index를 사용하는 문제 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sys input=sys.stdin.readline n = input().strip() #ZOAC alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' result = 0 now = alpha.index('A') for i in n: target = alpha.index(i) if abs(target-now)
현재 상황에서 지금 당장 좋은 것만 거르는 방법 문제 상에 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준 제시 1. 거스름돈 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import sys input=sys.stdin.readline n=int(input()) coin=[500, 100, 50, 10] result=0 for c in coin: if n==0: break result+=n//c n%=c print(result) cs 2. 큰 수의 법칙 입력 예시 5 8 3 2 4 5 4 ..
*중복 개수 찾기 : try-except 문 사용 1 2 3 4 5 6 count={} lists = ["a","a","b",'c','c','d'] for i in lists: try: count[i] += 1 except: count[i]=1 print(count) #{'a': 2, 'b': 1, 'c': 2, 'd': 1} cs 딕셔너리와 try-except 문을 사용하여 try : count[i] 값이 존재하면 +1, except : count[i]값이 존재하지 않으면 1 삽입 하는 형태로 생각하면 된다 1 print(count['a']) #2 cs 위와 같이, 원하는 값의 중복 개수를 찾아줄 수도 있다 *중복 요소 제거하기 : set 사용 1 2 3 4 5 6 7 8 lists = ["a","a"..
insert(인덱스, 값) 형태로 이용하면 된다 1 2 3 4 5 nums=[2] nums.insert(0, 0) #[0, 2] nums.insert(-1, 1) #[0, 1, 2] nums.insert(3, 3) #[0, 1, 2, 3] cs -1과 같은 음수 형태 인덱스는 생각했던 위치한 위치-1에 값이 들어가 헷갈렸다
문제링크 www.acmicpc.net/problem/1463 처음 풀어본 DP 문제이다. Bottom-up 방식으로 풀었는데 해당 방식이 함수를 재귀호출하지 않아 시간과 메모리를 줄일 수 있다고 한다 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import sys input=sys.stdin.readline n=int(input()) dp=[0 for _ in range(n+1)] for i in range(2, n+1): dp[i]=dp[i-1]+1 if i%3==0 and dp[i]>dp[i//3]+1: dp[i]= dp[i//3]+1 if i%2==0 and dp[i]>dp[i//2]+1: dp[i]= dp[i // 2] + 1 print(dp[-1]) cs DP 문제..
문제 링크 www.acmicpc.net/problem/6588 에라토스테네스의 체를 이용하라는 말도 있던데 사용 안 해도 통과 가능하다 해당 수가 소수인지 아닌지는 1과 자기자신을 제외한 수로 나누어지는 지를 보면 된다 10 = 2*5 = 5*2 이기 때문에 소수가 아니다. 이와 같이 약수는 대칭되기 때문에 10의 경우 2까지만 검사해도 소수인지 아닌지 검사할 수 있다. [풀이법] ① n의 가장 작은 약수는 sqrt(n) 이하이므로 2부터 sqrt(n) 이하까지 루프를 돌린다 ② 두 수 중 하나라도 소수가 아니면 수를 증감하고 다시 소수인지 검사한다 [답코드] 123456789101112131415161718192021import sysinput=sys.stdin.readline def prime_num..
GCD는 greatest common divisor의 약자로 최대공약수를 뜻한다 유클리드 알고리즘은 최대공약수를 쉽게 구하는 방법으로 "비교대상의 두 개의 자연수 a와 b에서(단 a>b) a를 b로 나눈 나머지를 r이라고 했을때 GCD(a, b) = GCD(b, r)과 같고 r 이 0이면 그때 b가 최대공약수이다."라는 원리를 활용한 알고리즘" 이다 ex) GCD(24,16) -> GCD(16,8) -> GCD(8,0) : 최대공약수 = 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sys input=sys.stdin.readline for _ in range(int(input())): a, b=map(int, input().split()) #최소공배수 ..
태그 안에 를 넣어준다 Colored by Color Scriptercs