본문 바로가기

Algorithm/softeer5

[파이썬]softeer: 전광판 https://softeer.ai/practice/info.do?idx=1&eid=624&sw_prbl_sbms_sn=134941 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 해당 디지털보드에 번호를 부여한다 세그먼트 표시라 하는데, 뭐 이건 변수 이름이니 필요없고 0~9일때까지 디지털 보드가 어떻게 변환되어야 하는지 일차원 리스트를 이용하여 segment란 리스트에 저장 그 뒤 하나씩 뽑아서 틀린게 있는지 없는지 확인 후, 틀린게 있다면 틀린갯수를 카운트 해준다. import sys input = sys.stdin.readline t = int(input()) type0 = [1,1,1,0,1,1,1] type1 = [0,0,1,0,0,1,0] type2 = [1.. 2023. 1. 27.
[파이썬]softeer: 비밀 메뉴 https://softeer.ai/practice/info.do?idx=1&eid=623 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 단순 구현문제 중간에 맞는 비밀코드가 있다면 프로그램 자체를 꺼버리게끔 코드 구현 import sys input = sys.stdin.readline m,n,k = list(map(int,input().split())) arrm = list(map(int,input().split())) arrn = list(map(int,input().split())) for i in range(len(arrn)): if arrn[i] == arrm[0]: if len(arrn) >=i + len(arrm): if arrn[i:i+len(arrm)].. 2023. 1. 26.
[파이썬]softeer: 바이러스 해당 문제의 요점은 시간초과를 해결하는 것이다. 문제를 읽어보면, 어렵지 않은 로직을 가진 문제인데, 모든 변수가 많은 수의 범위를 가짐! 문제를 보고 구현을 해보면 k*(p^n)의 식이 성립이 되는데, 이는 수가 너무 커져서 시간초과의 큰 요인이됨 그래서 고안한 방법 import sys input = sys.stdin.readline k, p, n = list(map(int,input().split())) for i in range(n): k = k*p % 1000000007 print(k) k*(p^n) == k*p*p*p.... 이 된다. 곱해질 숫자를 그때그때 1000000007 로 나누게 된다면, 곱해지는 숫자가 작아지고 시간초과의 틀을 벗어날 수 있음 2023. 1. 25.
[파이썬]softeer: 회의실 예약 https://softeer.ai/practice/info.do?idx=1&eid=626&sw_prbl_sbms_sn=111569 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 단순 구현문제인데... 시간이 많이 걸림 dictionary에 넣은 뒤, 하나씩 빼면서 출력,,, import sys from collections import defaultdict n, m= map(int, input().split()) meeting_name = defaultdict() # 9-10-11-12-13-14-15-16-17-18 meeting_res_list = [[0 for _ in range(9)] for _ in range(n)] for i in range(n): room.. 2023. 1. 24.
[파이썬]softeer: 금고털이 그리드 문제인데, 조건이 하나 있다면 금고를 터는 범인은 톱이 있어서 잘라서 가져갈 수 있다. 따라서 무게에 맞춰 금괴를 잘라가면 끝! W,N = list(map(int,input().split())) arr = [] for i in range(N): lst = list(map(int,input().split())) arr.append(lst) arr.sort(key=lambda x: x[1], reverse=True) answer = 0 for i in range(N): if W >= arr[i][0]: answer += (arr[i][0]*arr[i][1]) W -= arr[i][0] else: answer += arr[i][1] * W break print(answer) 2023. 1. 23.