Algorithm(71)
-
프로그래머스 [모음사전]
[모음사전] https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 itertools 라이브러리를 활용했다. 사실 처음에는 combinations가 생각났는데 문자열은 product로 수정했다. from itertools import product def solution(word): li = [] aeiou = ["A", "E", "I", "O", "U"] for i in range(1, 6): for p in product(aeiou, repe..
2024.04.15 -
프로그래머스 [JadenCase 문자열 만들기]
[ JadenCase 문자열 만들기] https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 공백 문자가 연속해서 나올 수 있다는 점을 유의해야 한다. 이 부분을 대충 읽었다가 테스트 케이스에서 실패를 겪었다. 마지막 글자가 공백이 아닐 경우를 위해 if l != i:를 추가했다. def solution(s): answer = [] l = -1 for i in range(len(s)): if s[i] == ' ': answer.append(s[l..
2024.04.14 -
프로그래머스 [뒤에 있는 큰 수 찾기]
[뒤에 있는 큰 수 찾기] https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 시간 초과. def solution(numbers): answer = [0]*(n:=len(numbers)) for i in range(n): tf = True for b in numbers[i:]: if numbers[i] < b: answer[i] = b tf = False break if tf: answer[i] = -1 return answer 알 듯 말 ..
2024.04.12 -
백준 19637 풀이
문제 게임 개발자인 밀리는 전투력 시스템을 만들어, 캐릭터가 가진 전투력을 기준으로 칭호를 붙여주려고 한다. 예를 들어, 전투력 10,000 이하의 캐릭터는 WEAK, 10,000 초과 그리고 100,000 이하의 캐릭터는 NORMAL, 100,000 초과 그리고 1,000,000 이하의 캐릭터는 STRONG 칭호를 붙여준다고 하자. 이를 IF문으로 작성한다면 아래와 같이 구현할 수 있다. if power
2024.04.11 -
프로그래머스 [이진 변환 반복하기]
[이진 변환 반복하기] 풀이 제한 사항에 따라 s가 '1'일 경우도 고려해야 할 것 같아서 answer[0]을 0으로 초기화하고 아래 코드에서 주석처리한 부분을 실행시키는 구조로 작성했는데, '1'은 테스트 케이스에 없는 것인지 해당 내용이 없어도 정답으로 인정되었다. 테스트 케이스의 input을 '1', output을 [0,0]으로 추가하면 아래 코드는 오답으로 분류된다. def solution(s): n = s.count('1') answer = [1, len(s)-n] # if answer[1] or n > 1: # answer[0] += 1 print(answer) while n>1: s = str(format(int(n), 'b')) temp = s.count('1') answer[0] += 1..
2024.04.10 -
프로그래머스 [덧칠하기], [호텔 대실]
[덧칠하기] 풀이 s >= last는 last = m + s - 1로 수정하면 s > last로 대체 가능하다. def solution(n, m, section): answer = 0 last = 0 for s in section: if s >= last: last = m + s answer += 1 return answer [호텔 대실] 풀이 초반에는 시간을 기준으로 해서 분 단위 처리도 대충 했다가 9, 17번 테스트 케이스에서 실패를 맛봤다. 2시 50분이면 2.50과 같이 변환했는데, 청소 시간 10분을 추가하면 3시가 아니라 2.60이 되어 3과 다른 수가 된다. 그래서 분을 단위로 하여 시간에 60을 곱하는 것으로 수정했다. 시간과 관련한 문제가 나오면 이 부분을 유의해야겠다. import h..
2024.04.09