본문 바로가기

프로그래머스

(55)
[ 프로그래머스 ] 큰 수 만들기 / 제출 1 / def solution(number, k): answer = '' i = 0 final_len = len(number) - k while k > 0 and i = number[i+1]: answer += number[i] else: number = answer + number[i+1:] answer = '' k -= 1 i = -1 i += 1 return number 채점 결과 정확성: 75.0 합계: 75.0 / 100.0 8, 10 시간 초과 12 실패 36분 소요. 흐으.. 풀 때도 인덱스를 약간 복잡하게 해서 푸는 느낌이어서 불안했는데 제출하니 역시 시간 초과에 실패도 뜨네요. 코드 문제점 찾고, 시간 초과 해결방안도 찾아..
[ 프로그래머스 ] 카펫 / 제출 1 / def solution(brown, yellow): answer = [] yel_x = yellow yel_y = 1 while yel_y
[ 프로그래머스 ] 소수 찾기 / 제출 1 / def isPrime(x): x = int(x) if x == 0 or x == 1: return False for i in range(2,x): if x%i == 0: return False return True def solution(numbers): answer = [] cand_num = '' for i in range(len(numbers)): cand_num = numbers[i] if isPrime(cand_num)and int(cand_num) not in answer: answer.append(int(cand_num)) for j in range(len(numbers)): if i != j: cand_num += numbers[j] if isPrime(cand_num)an..
[ 프로그래머스 ] 나누어 떨어지는 숫자 배열 / 제출 1 / def solution(arr, divisor): answer = [] for i in range(len(arr)): if arr[i] % divisor == 0: answer.append(arr[i]) if answer: return sorted(answer) else: return [-1] 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 / 다른 분들 풀이 / 사실 다른 분들은 한 줄짜리 코드에 대해 되게 우와우와하십니다. 보다 보니 나는 개인적으로 눈에 잘 안 들어와서 내 취향은 아닌 것 같습니다.. 물론 계속 말하지만 할 줄 알면서 선택에 의해 안 하는 것과, 몰라서 못하는 것과는 차이가 있으니 한 줄로 구현하는 것도 익혀는 둬야 합니다. def solution(ar..
[ 프로그래머스 ] 가운데 글자 가져오기 / 제출 1 / def solution(s): if len(s) % 2 == 0: return s[len(s)//2-1:len(s)//2+1] else: return s[len(s)//2] 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 아니.. 이 간단한 구현에서도 짝수일 때 착각해서 인덱스 범위를 실수해 다시 고쳐 제출했습니다. 이 인덱스 값에 대해서는 다른 분들이 되게 다양하게 접근하셨던데 재밌어서 많이 살펴봤습니다. 다양한 사고를 할 수 있으면 분명 다른 문제에서도 아이디어를 떠올리기 쉬울테니까요. / 다른 분들 코드 / def string_middle(str): return str[(len(str)-1)//2:len(str)//2+1] 저는 짝수일 경우, 홀수일 경우를 나눠서 했는..
[ 프로그래머스 ] [1차]비밀지도 / 제출 1 / def solution(n, arr1, arr2): answer = [] for a,b in zip(arr1, arr2): col = '' bin_row = bin(a|b)[2:] if len(bin_row) < n: row = '0' * (n - len(bin_row)) bin_row = row+bin_row bin_row = bin_row.replace('1','#') bin_row = bin_row.replace('0',' ') answer.append(bin_row) return answer 채점 결과 정확성: 100.0 합계: 100.0 / 100 비트 연산 문제 만나고 싶었던 문제였는데 ! 바로 나와서 재밌게 풀었습니다. 재밌던 것에 비해 시간은 조금 걸린 느낌입니다. 왜? 잘..
[ 프로그래머스 ] 부족한 금액 계산하기 / 제출 1 / def solution(price, money, count): result = 0 for i in range(1,count+1): result += price*i print(result) if result > money: return result - money else: return 0 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 특별한 로직을 떠올리지는 않았습니다. 문제에서 제시된 설명을 그대로 구현한 풀이를 작성하여 제출했고 통과했습니다.
[ 프로그래머스 ] 나머지가 1이 되는 수 찾기 / 제출 1 / def solution(n): answer = 0 n -= 1 for i in range(2,n+1): if n % i == 0: answer = i break return answer 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 연산을 거꾸로 해도 무방하여 1을 미리 빼고 해당 숫자를 가장 작은 수로 나누는 경우를 구했습니다.
[ 프로그래머스 ] 최소직사각형 / 제출 1 / def solution(sizes): answer = 0 max_width = 0 max_height = 0 for size in sizes: w,h = size if w < h: w, h = h, w max_width = max(max_width, w) max_height = max(max_height, h) return max_width*max_height 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 처음에 문제 해결방식이 이해가 안 갔는데, 노트에 각 예제를 써서 차근차근 확인해보니 풀이가 떠올려졌습니다. width와 height라는 정의에 매몰되지 않고, 그냥 직사각형이라고 생각해서 각 직사각형의 긴 변들끼리 비교하고 짧은 변들끼리 비교하면 되겠다 싶었습니다. 그..
[ 프로그래머스 ] 2016년 / 제출 1 / def solution(a, b): # 윤년: 2월이 29일까지인 해 +1일 # 한 달 날짜 수:31일: 1,3,5,7,8,10,12 +3일 | 30일: 4,6,9,11 +2일 thirty_one = [1,3,5,7,8,10,12] thirty = [4,6,9,11] # 1월 1일 금 +28(+3일) 2월 화+28(+1일) 3월 수 # 3,1,3,2 = 9일/7일 = 2일 => 5월은 일부터 시작(0) + 24/7 = 3 (-1) 화 # 5월 24일 화 day = ['SUN','MON','TUE','WED','THU','FRI','SAT'] passing_date = 0 num = 0 for i in range(a-1): if i+1 in thirty_one: num = 3 elif i+..