프로그래머스 | 공 던지기 [파이썬 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]
·
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개의 테스트..
프로그래머스 | 최빈값 구하기 [파이썬 Python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(array): count = [0] * (max(array)+1) # 숫자 출연 횟수를 셀 리스트 for i in array: count[i] += 1 m = 0 # 최빈값의 개수 for c in count: if c == max(count): m += 1 if m > 1: # 최빈값이 2개 이상이면 -1을 리턴 return -1 else: # 최빈값이 1개이면 해당 숫자를 리턴 return count.index(max(count)) 주어진 배열에서 최빈값을 찾는 문제이다. 최빈값..
프로그래머스 | 분수의 덧셈 [파이썬 Python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import math def solution(numer1, denom1, numer2, denom2): b = denom1 * denom2 a = (numer1 * denom2) + (numer2 * denom1) gcd=math.gcd(a,b) a = a // gcd b = b // gcd answer = [a, b] return answer $\frac{numer1}{denom1}$, $\frac{numer2}{denom2}$ 의 합을 기약분수로 나타내는 문제이다. 처음에는 denom1과 denom2..