본문 바로가기

전체 글

(117)
프로그래머스 / 코딩 테스트 / 수박수박수박수박수박수? 문제 설명 문제 해결 특정 패턴의 문자열을 주어진 길이만큼 생성하여 반환해야되는 문제이다. tuple에 '수', '박' 문자를 담고 반복문을 이용하여 반복적으로 반환된 문자열에 문자들을 더해줬다. def solve(n): res = "" t = ('수','박') for i in range(n): res += t[i%2] return res def solution(n): answer = solve(n) return answer 다른 사람의 풀이 소개 Python에서는 문자열을 곱연산을 할 수 있었다. (사용한 기억이 없어서 까먹고 있었다.) 문자열을 곱연산한 결과에 원하는 길이만큼 자르면 된다. 내 코드보다 엄청 깔끔하고 논리적이다. # 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되..
프로그래머스 / 코딩 테스트 / 두 개 뽑아서 더하기 문제 설명 문제 해결 이중 반복문과 집합 자료형의 특징을 이용하면 쉽게 풀 수 있다고 판단했다. (중복을 허용하지 않는 특징) 각 반복문마다 어떤 원소와 원소를 더해야하는지 색깔로 표기해봤다. 서로 다른 인덱스를 더해서 집합에 연산한 결과를 추가하도록 만들었다. 반환 값을 list 형태로 오름차순 정렬하여 반환해야 된다는 사항만 잊지 않으면 된다. def solve(numbers): res = set() for i in range(len(numbers)): for j in range(i+1, len(numbers)): res.add(numbers[i] + numbers[j]) res = list(res) res.sort() return res def solution(numbers): answer = so..
프로그래머스 / 코딩 테스트 / 피보나치 수 문제 설명 문제 해결 시도 제한 사항에서 n > 1, n < 100000이라는 조건을 줬다. n을 1234567로 나눈 나머지를 구하는 코드는 딱히 의미가 없다고 생각했다. 재귀 함수를 이용하여 피보나치 수를 구하도록 프로그램을 만들었고 채점을 진행했다. def fibo(n): if n == 0 : return 0 elif n == 1 : return 1 else: return fibo(n - 2) + fibo(n - 1) def solution(n): answer = 0 answer = fibo(n) return answer 시간 초과 및 런타임 에러로 인하여 절반 정도의 테스트만 통과했다. 재귀 함수를 이용한 피보나치 수를 구하는 방법은 실행 속도가 다른 구현 방법에 비해 느리다. 반복문을 이용하여 ..