본문 바로가기

코딩테스트70

[프로그래머스] 스택 - 같은 숫자는 싫어 나의 답 def solution(arr): answer = [] for i in range (len(arr)-1): if (arr[i]!=arr[i+1]): answer.append(arr[i]) answer.append(arr[len(arr)-1]) return answer 꽤나 금방 풀었다... 숫자가 달라지는 순간을 찾아 리스트에 append하였다. 맨 마지막에 오는 숫자를 따로 더해줬다. 다른 사람 답 def no_continuous(s): # 함수를 완성하세요 a = [] for i in s: if a[-1:] == [i]: continue a.append(i) return a # 아래는 테스트로 출력해 보기 위한 코드입니다. print( no_continuous( "133303" )) 슬라이싱.. 2024. 1. 26.
[프로그래머스] 해시 - 전화번호 목록 내 풀이.. (틀림) def solution(phone_book): phone_book.sort() prefix = phone_book[0] p_len = len(prefix) dic = [] for i in range(1, len(phone_book)): if phone_book[i][:p_len] == prefix: return False return True 난 단순히 접두사,,가 맨 첫번째 오는 문자라고 생각했다. 접두사 길이가 같은 경우도 있고, 몇 몇 에러가 존재했다 ... ㅜ 다른 사람 풀이 def solution(phone_book): answer = True hash_map = {} for phone_number in phone_book: hash_map[phone_number] = 1 .. 2024. 1. 24.
[프로그래머스] 해시 - 폰켓몬 문제 설명 입출력 예 나의 답. def solution(nums): nums_len = len(nums)/2 dic = {} for i in nums: key = hash(i) dic[key]=i return len(dic) if nums_len > len(dic) else nums_len 앞서 풀었던 해시 문제를 떠올려서 풀어보았다. 비교적 간단한 문제인 듯하다. dictionary를 쓰니 금방이군.. 폰켓몬을 고를 수 있는 유형의 최댓값은 주어진 길이를 2로 나눈 값이라고 생각했다. 최댓값보다 작다면, 같은 유형의 값이 존재하다라는 뜻이니까. 값은 값끼리 모아진 dictionary의 길이가 고를 수 있는 유형의 최댓값이라고 생각했다... 다른 사람 풀이 def solution(ls): return m.. 2024. 1. 23.
[프로그래머스] 완주하지 못한 선수 내 풀이 def solution(participant, completion): for i in completion: participant.remove(i) return participant[0] 단순하게 생각을 했고, 테스트가 통과라고 나와서 맞은 줄 알았는데 아니었다..ㅎㅎ 효율성에서 문제가 있었다. 참여한 사람의 수가 십만명까지 인정이라 그런 듯하다. 그래서 이럴 때는 해시 함수를 사용하는 것이 시간 복잡도가 O(1)이기 때문에 빠르다고 한다! 다른 사람 답 #1. sort def solution(participant, completion): answer = '' participant.sort() completion.sort() for i, j in zip(participant, completion).. 2024. 1. 22.
[코딩테스트] 할 일 목록 문제 설명 오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요. solution.py def solution(todo_list, finished): answer = [] for index, value in enumerate(todo_list): if not finished[index]: answer.append(value) return answer 다른 사람 풀이 def solution(todo_list, finished): return [work for idx, work .. 2024. 1. 12.
[코딩테스트] 원하는 문자열 찾기 문제 설명 알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요. 단, 알파벳 대문자와 소문자는 구분하지 않습니다. mysolution.py def solution(myString, pat): str = myString.lower() pa = pat.lower() return int(pa in str) 다른 사람 풀이 def solution(myString, pat): return int(pat.lower() in myString.lower()) 느낀 점 wa............ 바로 걍 써버리면 되는 구나.. 2024. 1. 12.