Python(62)
-
프로그래머스 [이진 변환 반복하기]
[이진 변환 반복하기] 풀이 제한 사항에 따라 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 -
프로그래머스 [괄호 회전하기]
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 백준에서도 올바른 괄호와 관련되어 비슷한 문제를 풀었던 기억이 있다. 근데 어떻게 풀었는지 잘 떠오르지 않아서 생각나는 대로 일단 적어봤다. 하지만 14번 테스트 케이스에서 실패했다. '{(})'와 같은 경우가 실패 요인이다. def solution(s): s = list(s) answer = 0 for j in range(len(s)): s.append(s.pop(0)) big = 0 mi..
2024.04.08 -
백준 9012 풀이
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열..
2024.04.07 -
프로그래머스 [문자열 내 마음대로 정렬하기], [문자열 나누기]
[문자열 내 마음대로 정렬하기] https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(strings, n): strings.sort(key= lambda x : (x[n], x)) return strings [문자열 나누기] 풀이 std : 각 부분 문자열의 가장 앞 글자이자 기준. count_std : std를 count한 횟수. count_diff : std가 아닌 글자를 count한 횟수. for문을 len(s)-1..
2024.04.06 -
프로그래머스 [나누어 떨어지는 숫자 배열], [행렬의 곱셈]
[나누어 떨어지는 숫자 배열] 풀이 def solution(arr, divisor): answer = [] for a in arr: if a%divisor == 0: answer.append(a) if not answer: answer.append(-1) else: answer.sort() return answer [행렬의 곱셈] 풀이 행렬곱을 배운 지 너무 오래돼서 식을 다시 찾아봐야 했다. 식만 알고 있다면 간단한 문제였다. def solution(arr1, arr2): len_x = len(arr1) len_y = len(arr2[0]) answer = [[0]*len_y for _ in range(len_x)] for i in range(len_x): for j in range(len_y): co..
2024.04.05