문제요약 나의 코드 및 설명 오늘 날짜를 일자로 환산하여 저장해두고, 약관에 따라 개인정보 수집 유효기간이 끝나는 날짜를 환산한 값과 비교하여 유효기간이 만료되었는지를 확인한다. 약관 종류에 따른 유효기간은 딕셔너리를 활용하여 저장한다. def solution(today, terms, privacies): answer = [] today = today.split(".") #문자열 형태임(오늘날짜) today_day = int(today[0])*28*12 + int(today[1])*28 + int(today[2]) #날짜를 일수로 변환 #약관 종류 : 유효기간 -> 딕셔너리 저장 d = {} for term in terms: term = term.split() d[term[0]] = int(term[1]..
문제요약 나의 코드 및 설명 def solution(new_id): answer = '' #1단계 new_id = new_id.lower() new_id_list = list(map(str, str(new_id))) new_id = '' print("1단계:","".join(map(str,new_id_list))) #2단계 for i in range(len(new_id_list)): if 97
문제요약 나의 코드 및 설명 (틀림..) 50년 후의 지도를 초기화 해두고, 현재 지도의 부분 중 섬인 부분을 방문하여 주변을 둘러싼 바다의 개수를 카운트한 후 50년 후의 지도에 저장하는 식으로 문제를 풀었다. 하지만 풀리지 않았다. 지도의 크기를 줄이는 과정에서 잘못되었나, 섬이 아무것도 없는 경우는 없어서 그런가 하고 여러가지 방법을 5~6번 정도 시도했지만 결국 혼자 힘으로는 풀지 못했다.. ㅠ r, c = map(int, input().split()) #r*c board = [list(input()) for _ in range(r)] dx = [0,-1,0,1] dy = [-1,0,1,0] after = [["."] * c for _ in range(r)] #50년 후의 지도를 정보 for y ..
문제요약 나의 코드 및 설명 01 (시간초과) 자꾸 시간초과가 발생했다. 이 방법 말고도 3~4가지 방법을 더 사용해봤는데 혼자 힘으로 시간초과를 극복하지 못했다. 격자판 입력받는 부분도 바꿔보고, n%4 == 3 일 때의 방문처리를 다른 방법으로 하는 등 소스들을 여러 번 수정해보았는데 계속 시간초과가 발생했다. import sys r, c, n = map(int,input().split()) #r*c격자판 #n초가 흐른 후의 격자판 board = [] for _ in range(r): board.append(list(sys.stdin.readline())) check = [] for y in range(r): for x in range(c): if board[y][x] == "O": check.app..
문제요약 나의 코드 및 설명 def solution(id_list, report, k): #각 유저가 k번 이상 신고당한다면, 그 유저를 신고한 사람에게 메일이 전달되고, #answer 리스트는 각 유저별 메일을 받은 횟수를 저장 answer = [0 for _ in range(len(id_list))] check = [0 for _ in range(len(id_list))] #각 유저가 신고받은 횟수 who = [[] for _ in range(len(id_list))] #각 유저를 신고한 신고자 리스트 #set으로 중복을 제거해준다(한 유저가 다른 유저를 여러 번 신고할 경우 카운트 되는 것을 방지) report = list(set(report)) #리포트 신고내역 하나씩 분석 for i in rep..
문제요약 나의 코드 및 설명 import sys n, m = map(int, input().split()) num_list = list(map(int, sys.stdin.readline().split())) # [5 4 3 2 1] #인덱스 혼동되지 않기 위해 n+1 길이의 합을 저장할 리스트 생성 prefix_sum = [0 for _ in range(n+1)] #[0,0,0,0,0,0] #리스트에 누적된 합을 저장하는 소스 코드 for i in range(n): prefix_sum[i+1] = prefix_sum[i] + num_list[i] for _ in range(m): start, end = map(int, sys.stdin.readline().split()) #누적된 합이 저장된 리스트의 (..
문제요약 나의 코드 및 설명 n, m = map(int, input().split()) #n:나무의 수 m:목표나무의길이 tree = list(map(int, input().split())) tree.sort() # 10 15 17 20 result = [] ## 절단기의 높이를 0~나무의높이의 최대값으로 지정할 수 있음(즉, 0~20) start = 0 #절단기의 높이의 시작값:0 end = tree[-1] #절단기의 높이의 끝값: 나무의높이의 최대값 while start = mid: #설정한 절단기의 높이보다 나무가 크다면 자를 수 있으므로 cutting += (t-mid) #잘랐을때의 나무의 길이의 총합에 저장 if cutting >= m: #만약 나무의 길이의 총합이 목표값 이상이라면 result..
문제요약 나의 코드 및 설명 01 - 이중 for문으로 한 명의 성적을 나머지의 성적과 비교 (시간초과) import sys t = int(input()) for test_case in range(1,t+1): n = int(input()) result = [] for _ in range(n): result.append(list(map(int, sys.stdin.readline().split()))) cnt = 0 for i in range(n): #한 명의 서류, 면접 성적을 뽑는다. check = True for j in range(n): #나머지와 서류, 면접 성적을 비교한다. if j == i: #만약 비교 대상이 본인이라면 continue #다음 사람과 비교 #만약 나머지의 성적과 비교했을 때,..