56. 신고 결과 받기
2024. 7. 17. 02:53
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 10분 def solution(id_list, report, k): answer = [] userreport = [[] for ids in id_list] reportedcnt = [0 for i in range(len(id_list))] reported = [] for rp in report: rp = rp.split(" ") if rp[1] in userreport[id_list.index(rp[0])]: continue else: reportedcnt[id_list.index(rp[1])] += 1 userreport[id_list.index(rp[..
55. 개인정보 수집 유효기간 ★
2024. 7. 17. 02:43
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 25분, 인터넷 검색 def solution(today, terms, privacies): today = today.split(".") today = [int(x) for x in today] answer = [] termdict = dict([t.split(" ") for t in terms]) privlist = [x.split(" ") for x in privacies] date = [y[0].split(".") for y in privlist] tm = [y[1] for y in privlist] for i in range(len(tm)): date[i][0] = int(date[i][0]) ..
54. 성격 유형 검사하기
2024. 7. 17. 02:16
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 10분 이거 맞나? 구현.. 노가다..def solution(survey, choices): answer = [] survlist = [[survey[i][0], survey[i][1]] for i in range(len(survey))] resdict = dict([[j, 0] for j in ['R', 'T', 'C', 'F', 'J', 'M', 'A', 'N']]) for i in range(len(choices)): if choices[i] = 5: resdict[survlist[i][1]] += choices[i] - 4 if resdict['R'] >= resdict['T']: answer.app..
53. 신규 아이디 추천 ★ (isalpha, isdigit)
2024. 7. 17. 01:59
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 20분 문제 자체는 쉬운데 완전 노가다 구현...def solution(new_id): #1단계 answer = new_id.lower() letter = 'abcdefghijklmnopqrstuvwxyz' number = '0123456789' char = '-_.' i = 0 #2단계 while True: if i >= len(answer): break if answer[i] not in letter and answer[i] not in number and answer[i] not in char: answer = answer[:i] + answer[i+1:] ..
52. 키패드 누르기
2024. 7. 17. 01:01
프로그래머스/Lv. 1
유형: 구현풀이 시간: 20분def solution(numbers, hand): answer = '' lf = [1, 4, 7] rh = [3, 6, 9] lfhand = -1 rhhand = -2 for nb in numbers: if nb in lf: answer += 'L' lfhand = nb elif nb in rh: answer += 'R' rhhand = nb else: ld = getdistance(lfhand, nb) rd = getdistance(rhhand, nb) if..
51. 크레인 인형뽑기 게임
2024. 7. 16. 23:36
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 10분 이하 def solution(board, moves): answer = 0 bucket = [] boardstack = [] for i in range(len(board[0])): tmp = [] for j in range(len(board)): if board[j][i] != 0: tmp.append(board[j][i]) boardstack.append(tmp) for mv in moves: if boardstack[mv-1]: curr = boardstack[mv-1].pop(0) if bucket: ..
50. 햄버거 만들기 ★
2024. 7. 16. 20:56
프로그래머스/Lv. 1
유형: 구현풀이 시간 : 20분 1. 시간 초과 발생. def solution(ingredient): answer = 0 i = 0 while ingredient: if i > len(ingredient) - 3: break if ingredient[i:i+4] == [1, 2, 3, 1]: del ingredient[i:i+4] answer += 1 i = 0 else: i += 1 return answer ingredient에 일치하는 부분을 발견한 뒤 i=0부터 다시 탐색하는 부분이 문제였던 것 같다.다시 작성해보자. 2. 정답 코드def ..
49. 숫자 짝꿍 ★ (Counter, union)
2024. 7. 16. 20:12
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 8분 -> 총 약 20분 1. 첫 번째 풀이 : 시간 초과import collectionsdef solution(X, Y): answer = '' numset = dict(collections.Counter(str(X)) & collections.Counter(str(Y))) idx = list(numset.keys()) idx.sort(reverse = True) for i in idx: answer += i * int(numset[i]) if answer == '': return "-1" else: return str(int(answer)) 5개 case에서 시간 초과가 났다. (이거 걍 str(i..