프로그래머스 | 합성수 찾기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n): answer = 0 for i in range(n+1): c = 0 for j in range(1, i+1): if i % j == 0: c += 1 if c >= 3: answer += 1 return answer n 이하의 합성수 개수를 구하는 문제이다. 합성수는 약수의 개수가 3개 이상인 수를 말한다. 따라서 약수의 개수가 몇 개 인지 판별하면 합성수를 찾을 수 있다. n 이하의 수에서 합성수를 찾아야 하므로 첫 번째 for문은 n+1까지로 선언해 준다. c는 약수의 ..
프로그래머스 | 배열 회전시키기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(numbers, direction): answer = [0] * len(numbers) for i in range(len(numbers)): if direction == 'right': answer[(i+1) % len(numbers)] = numbers[i] else: answer[(i-1) % len(numbers)] = numbers[i] return answer 주어진 배열 numbers를 direction이 right이면 오른쪽으로 1칸, left이면 왼쪽으로 1칸씩 이동..
프로그래머스 | 공 던지기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(numbers, k): answer = 0 if len(numbers) < k * 2: numbers = numbers * ((k*2) // len(numbers) + 1) answer = numbers[2*(k-1)] return answer 문제에서 주어지는 예시 중 하나를 가지고 살펴보면 다음과 같다. numbers = [1, 2, 3, 4, 5, 6]가 있을 때 k=5 이면 5번째로 공을 던지는 사람을 찾아야 한다. 두 칸씩 건너뛰기 때문에 [1, 2, 3, 4, 5, 6]..
프로그래머스 | 2차원으로 만들기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(num_list, n): answer = [] for i in range(len(num_list)//n): answer.append(num_list[n*i : n*(i+1)]) return answer 1차원 배열 num_list가 주어지면 n차원 배열로 바꾸는 문제이다. 단순히 n 개씩 잘라 answer에 추가하면 쉽게 풀 수 있다. 이때 n개씩 자르는 부분을 슬라이싱으로 구현해야 하는데 나는 기존 리스트는 건들지 않고 answer에 추가하려 했기 때문에 n*i부터 n*(i+1)..
python | 파이썬에서 순열과 조합 사용하기
·
TIL/python
파이썬에서 순열과 조합을 사용할 수 있는 두 가지 방법을 정리해보려 한다. 먼저, 순열과 조합의 정의를 살펴보면 다음과 같다 순열(permutation): n개 중 r개를 선택하여 순서대로 정렬 ex) 1, 2, 3에서 2개를 선택하여 순서대로 정렬 → (1, 2), (2, 3), (3, 1) (1, 2)와 (2, 1)을 같은 것으로 봄 $_nP_r=\frac{(n-r)!}{n!}$ 조합(combination): n개 중 r개를 선택 (순서 X) ex) 1, 2, 3 에서 2개를 선택 → (1, 2), (2, 1), (2, 3), (3, 2), (1, 3), (3, 1) (1, 2)와 (2, 1)을 다른 것으로 봄 $_nC_r=\frac{(n!}{(n-r)! r!}$ 1) math 라이브러리에 있는 pe..
프로그래머스 | 특정 문자 제거하기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(my_string, letter): answer = '' lms = list(my_string) for i in lms: if i == letter: lms.remove(letter) answer = ''.join(lms) return answer my_string에서 letter를 제거하는 문제이다. my_string이 리스트가 아닌 문자열로 주어지기 때문에 remove를 사용하려고 list로 바꿔 letter를 제거하였다. 하지만 예시는 모두 통과하였으나 제출하면 2개의 테스트..