본문 바로가기

코딩 테스트/프로그래머스98

예산 첫번째 코드 그리디 알고리즘 같이 오름차순으로 나열 한 후 남은 금액이 현재 금액보다 크면 주는 형식을 통해 최대한 많은 부서에 지원해 줄 수 있다. def solution(d, budget):     answer = 0     left = budget          d.sort()          for i in d:         if i             answer += 1             left -= i          return answer 통과!링크https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12982.%E2%80%85%EC%98%88%E.. 2024. 8. 30.
실패율 첫번째 코드 리스트 안에 두 개의 값([깨지는 못했지만 스테이지에 도달한 사람, 스테이지 번호])을 갖고 있는 리스트를 만든다.그리고 stages 리스트를 이용하여 위의 리스트를 완성한다. 거꾸로 스테이지 도달한 플레이어 수를 더해가며 깨지는 못했지만 스테이지에 도달한 사람을 나누어준다. (실패율 구하기) 스테이지0과 모든걸 클리어한 사람을 빼준 후실패율이 높은 사람 순서대로 배열 하면서, 스테이지가 낮은 순으로 배열한다. (GPT sort 함수를 도와줘!) answer이라는 리스트를 생성하여, 스테이지를 리스트에 넣고 출력한다. def solution(N, stages):     answer = []     count = [[0, i] for i in range(0, N+2)]          for .. 2024. 8. 26.
[1차] 다트 게임 첫번째 코드 첫번째 코드라기에 무색하게도 많이 고쳤다.하지만 테스트 케이스를 통과하지 못해서...제출 내역이 없어 정답 코드로 설명하기로 한다! 3개의 다트만 쏘지만, 나는 일반화를 하여 풀고싶다는 생각이 들었다.하여 굳이 일반화된 결과로 작성하였다. ㅎㅎ; 먼저 생각한 아이디어는 함수를 따로 만들어서 숫자에 계산하자는 것이었다.그래서 점수와 함께 영역에 해당하는 값을 구하는 bonus라는 함수를 작성하였다. 사실 그리고 option이라고 해서 옵션이 있는 경우 해당 함수를 돌리려고 했으나,코드를 수정하는 과정에서 문제가 생겨 해당 부분을 제거하였다.(근데 어떻게 다시 작성하면 아래 코드와 다른 정답 코드를 작성할 수 있을 것 같다!) 점수 영역, 옵션 으로 이루어진 문자열을 분리해야한다.이를 위해서 i.. 2024. 8. 23.
숫자 문자열과 영단어 첫번째 코드 많은 입력이 있는 것을 보고 리스트를 이용하면 편하겠지만, 용량과 연습을 위해서 딕셔너리를 이용하기로 했다. 먼저 숫자와 관련된 것들을 딕셔너리에 저장한다.그리고 해당 key와 비교하여 같은 경우 그 키의 value값으로 바꾸어 문자열을 변경한다.정답은 문자열이 아니므로 int로 바꾸어 답을 낸다. def solution(s):     num = {'zero':0, 'one':1, 'two':2, 'three':3,              'four':4, 'five':5, 'six':6, 'seven':7,             'eight':8, 'nine':9}     for word, num in num.items():         s = s.replace(word, str(num).. 2024. 8. 19.
옹알이 (2) 첫번째 코드 사실 첫번째라기에는 연속해서 발음하는 것이 불가능하다는 것을 보지 않았다...문제를 명확히 보도록 하자! 그리고 수정한 방법으로 아래와 같이 작성하였다. 연속한 경우 발음이 되지 않으므로 해당 문자열을 작성한다.그리고 해당 단어가 있는 경우 'x'로 대체한다. 똑같은 방법으로 발음이 가능한 경우 해당 값을 삭제한다.그 결과 모든 값이 없는 경우 발음이 가능한 경우이므로 count에 1을 더한다. def solution(babbling):     count = 0     can_speak = ['aya', 'ye', 'woo', 'ma']     cant_speak = ['ayaaya', 'yeye', 'woowoo', 'mama']          for i in range(len(babbl.. 2024. 8. 16.
문자열 내 p와 y의 개수 첫번째 코드대소문자를 구분하지 않으므로 모두 소문자로 변경한 후에 알파벳을 비교한다.전체 알파벳에 대하여 비교한 후, 개수가 일치한 경우 True, 아니면 False를 return 한다. def solution(s):     count_p = 0     count_y = 0          s = s.lower()          for i in s:         if i == 'p':             count_p += 1         elif i == 'y':             count_y += 1     if count_p == count_y:         return True     else:         return False 통과!링크https://github.com/ornn.. 2024. 8. 12.
728x90