취준

t = int(input()) for _ in range(t): n = int(input()) n = list(format(n, 'b')) # 이진수로 변환 n.reverse() for i in range(len(n)): if n[i] == '1': print(i, end=" ") reverse() 리스트 뒤집는 함수 b = format(value, 'b') o = format(value, 'o') h = format(value, 'x') 각 2진수, 8진수, 16진수 변환
import sysinput = sys.stdin.readlinen, m = map(int, input().split())result = []# list는 포함 여부 확인 시간복잡도가 O(N)# set은 O(1)hear = set()for _ in range(n): hear.add(input().strip()) # strip 사용 시 이렇게for _ in range(m): s = input().strip() if s in hear: result.append(s)print(len(result))result.sort()for i in result: print(i) 교집합 이용해서 풀어도 됨 교집합은 &  strip()은 개행 문자를 생략한다 ! 포함 여부 확인이 필요할 땐 ..
s = int(input()) n = 0 num = 1 result = 0 while(True): result += num if result > s: break num += 1 n += 1 print(n) 1부터 순서대로 더해 나가다가 n보다 커지면 멈춘다! 마지막 더해지는 값만 알아서 조절하면 되므로 신경쓸 게 없음
import sys input = sys.stdin.readline INF = int(1e9) # 무한을 의미하는 10억 값 설정 n = int(input()) graph = [] for _ in range(n): path = list(map(int, input().split())) for j in range(len(path)): # 0 이라면 INF로 변경하여 넣어주기 if path[j] == 0: path[j] = INF graph.append(path) for k in range(n): for a in range(n): for b in range(n): graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) for a in graph: for b in..
cmd = list(input()) minus = False first = True # -가 나온 후의 +는 모두 -로 바꾸기 for i in range(len(cmd)): if cmd[i] == "-": minus = True if minus == True: if cmd[i] == "+": cmd[i] = "-" result = "" for i in cmd: # +/- 가 나오면 first를 True로 초기화 if i == "+" or i == "-": first = True result += i # 0이 나왔는데 first가 False라면 0으로 시작하는 숫자가 아니므로 추가 elif i == "0": if first == False: result += i # 이외의 숫자는 그냥 추가 else: fi..
n = list(map(int, input())) half = int(len(n) / 2) if sum(n[:half]) == sum(n[half:]): print("LUCKY") else: print("READY")
n = int(input()) dp = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] # 두 자리 수일 땐 10 9 8 7 6 5 4 3 2 1 더했음 # 세 자리 수일 땐 55 45 36 28 21 15 10 6 3 1 # 네 자리 수일 땐 220 ... # 패턴이 있다. 기존 dp[i-1]을 빼주면 된다. newdp = [0 for i in range(10)] for i in range(3, n+1): for j in range(10): if j == 0: newdp[j] = sum(dp) else: newdp[j] = newdp[j-1] - dp[j-1] dp = newdp[:] # 배열의 깊은 복사 주의하기 ^^ if n == 1: print(10%10007) else: print(su..
n = int(input()) distance = list(map(int, input().split())) oil = list(map(int, input().split())) minOil = oil[0] result = 0 for i in range(len(distance)): if minOil > oil[i]: minOil = oil[i] result += minOil * distance[i] print(result) 간단한 그리디 문제 도시를 거칠때마다 최소 비용 기름 값을 갱신하면서 해당 값으로 계산하면 됨
린구
'취준' 카테고리의 글 목록 (4 Page)