본문 바로가기

CodingTest

(238)
[ 프로그래머스 ] 음양 더하기 / 제출 1 / def solution(absolutes, signs): answer = 0 for i in range(len(absolutes)): if signs[i]: answer += absolutes[i] else: answer -= absolutes[i] return answer 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 경우의 수 나눠 분기문으로 해결했습니다. / 다른 분들 풀이 / def solution(absolutes, signs): answer=0 for absolute,sign in zip(absolutes,signs): if sign: answer+=absolute else: answer-=absolute return answer for문에 zip() 사용하는 ..
[ 프로그래머스 ] 크레인 인형뽑기 게임 / 제출 1 / def solution(board, moves): answer = 0 n = len(board) last = [100] for move in list(map(lambda x:x-1,moves)): # 세로줄 끝까지 체크 for i in range(n): # 0 나오면 if board[i][move] != 0: #넣기 전에 체크 if last[-1] == board[i][move]: last = last[:-1] board[i][move] = 0 answer += 2 else: last.append(board[i][move]) board[i][move] = 0 break return answer 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 소요시간 40분 40분 중 15분..
[ 프로그래머스 ] 숫자 문자열과 영단어 / 제출 1 / 어우 큰일입니다. 아직도 lv1에서 틀리다니... def solution(s): answer = '' num = '' num_dict = {'one':1, 'two':2, 'three':3, 'four':4, 'five':5,'six':6, 'seven':7, 'eight':8,'nine':9} for ch in s: if ch.isdigit(): answer += ch else: num += ch if num in num_dict: answer += str(num_dict[num]) num= '' return int(answer) 채점 결과 정확성: 70.0 합계: 70.0 / 100.0 7, 8, 9에서 실패했습니다. 그리고 더 문제인건 끙끙대다가 테케 맞으면 신나서 제출하는 습관을 ..
[ 프로그래머스 ] 로또의 최고 순위와 최저 순위 / 제출 1 / def score(num): if num == 6: return 1 elif num == 5: return 2 elif num == 4: return 3 elif num == 3: return 4 elif num == 2: return 5 else: return 6 def solution(lottos, win_nums): lotto_cnt = 0 # 1. lottos에서 win_nums에 속해있는 것을 골라낸다. for lotto_num in lottos: if lotto_num in win_nums: lotto_cnt += 1 # 2. lottos에서 0의 개수를 찾는다. zero_cnt = lottos.count(0) # 3. 최고순위 찾는 경우: 0의 개수만큼 더하기 best = l..
[ 프로그래머스 ] 내적 def solution(a, b): answer = 0 for i in range(len(a)): answer += a[i]*b[i] return answer 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 아하 ..! 이 시리즈가 난이도가 낮은 시리즈였네요. 간단한 연산 문제가 주로 이루네요. 스트레스 받은 마음을 달래줘서 기분이 좋아졌다는데 만족하며 게시글 작성합니다. ..😊 그래도 다른 사람들 풀이 확인하고 가기. def solution(a, b): return sum([x*y for x, y in zip(a,b)]) 왕.. 깔끔합니다. zip()함수를 잘 안 사용하게 되는데 잘 몰라서 확신이 없어서 그런 것 같습니다. 문제 풀이도 빨리 끝난 김에 다시 리마인드하고 갑시다. 이 분 설..
[ 프로그래머스 ] 없는 숫자 더하기 / 제출 1 / def solution(numbers): answer = -1 nums = [i for i in range(10)] print(nums) for num in nums: if num not in numbers: if answer != -1: answer += num else: answer = num return answer 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 0 - 9 리스트를 만들어주고 각 값이 주어진 numbers에 없다면( 각 값을 numbers가 포함하고 있지 않다면) answer에 더해줍니다. 대신 초기값이 -1이므로 분기문을 나눠 초기값은 대입하게 했습니다. / 다른 분들 풀이 / def solution(numbers): return 45 - sum(n..
[ 프로그래머스 ] 신규 아이디 추천 def solution(new_id): answer = '' #1 new_id = new_id.lower() #2 for id_char in new_id: if id_char.islower() or id_char.isdigit() or id in ['-','_','.']: answer += id_char #3 while '..' in answer: answer = answer.replace('..','.') #4 if len(answer) > 1 and answer[0] == '.': answer = answer[1:] if answer[-1] == '.': answer = answer[:-1] #5 if answer == '': answer = 'a' #6 if len(answer) >= 16: ans..
[ 프로그래머스 ] 신고 결과 받기 / 제출 1 / def solution(id_list, report, k): answer = [] result = {i:0 for i in id_list} reported = {} for i in range(len(report)): a, b = report[i].split() if b in reported and a not in reported[b]: reported[b].append(a) else: reported[b] = [a] for reported_user in reported: if len(reported[reported_user]) >= k: for i in range(len(reported[reported_user])): user = reported[reported_user][i] resul..
[ 프로그래머스 ] 체육복 / 제출 1 / def solution(n, lost, reserve): answer = 0 students = ([2 if i in list(map(lambda x:x-1,reserve)) else 1 for i in range(n)]) for i in range(n): if i+1 in lost: if i-1 >= 0 and students[i-1] > 1: students[i-1] -= 1 students[i] = 1 elif i+1 1: students[i+1] -= 1 students[i] = 1 else: students[i] = 0 return n - students.count(0) 채점 결과 정확성: 60.0 합계: 60.0 / 100.0 1,2,..
[ 프로그래머스 ] H-index / 1번째 제출 / def solution(citations): answer = 0 citations.sort(reverse = True) h = citations[-1] for i in range(len(citations)-1,0, -1): if citations[i] >= i+1: h = i+1 break return h 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 꽤 후딱 풀 수 있기는 했는테 테스트 케이스가 좀 더 주어져야 이해가 쉬웠던 것 같습니다. 딱 일치할 때만을 고려한 테스트 케이스만 주어졌기에 너무 단순하게 생각해 처음 풀이에서 틀렸기 때문입니다. 'h = citations[i] ' 로 고려했지만, 사실 생각해보면 h의 최대값이기 때문에 내림차순 배열 기준 citatio..