프로그래머스 | 소수 찾기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import math def isPrime(n): if n==1: # 1은 약수가 아니므로 제외 return False else: for i in range(2,int(math.sqrt(n))+1): # n의 제곱근까지 약수가 존재하는지 확인 if n%i==0: # 약수가 존재하면 False return False return True # 존재하지 않으면 True def solution(n): answer = 0 for i in range(1, n+1): if isPrime(i): answer += 1 ..
프로그래머스 | 폰켓몬 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(nums): answer = len(set(nums)) if answer > len(nums)/2: return len(nums)/2 return answer n마리의 폰켓몬이 주어지면 n/2마리의 폰켓몬을 고르되, 가장 많은 종류의 폰켓몬을 골라야 한다. nums = [3,1,2,3]이면, 4 / 2 = 2마리의 폰켓몬을 골라야 한다. 이때, 1번, 2번 또는 2번, 3번 또는 1번, 3번을 골라야 nums에서 2마리를 고를 수 있는 가장 많은 종류인 2종류의 폰켓몬을 고를 수 ..
프로그래머스 | 가장 가까운 같은 글자 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(s): answer = [] for i in range(len(s)): if s[i] in s[0:i]: answer.append(i - s[0:i].rindex(s[i])) else: answer.append(-1) return answer s='banana'일 때, s의 각 위치보다 앞에 있으면서 가장 가까운 곳에 있는 같은 문자와의 거리를 찾는 문제이다. 'banana'의 경우 다음과 같다. 1) b는 첫 번째 문자이고 앞에 같은 문자열이 없으므로, -1 2) a 앞의 문자열..
프로그래머스 | 푸드 파이트 대회 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명은 생략하고 코드에 대한 설명만 남깁니다. 코드 def solution(food): temp = '' # 왼쪽 선수 음식 for i in range(1, len(food)): temp += str(i) * (food[i]//2) return temp + '0' + temp[::-1] 문제가 너무 길어 당황스러울 수 있지만, 어떻게 하면 food에 주어진 값을 양쪽에 대칭으로 배치할 수 있을지 고민해 보면 어렵지 않게 해결할 수 있다. 처음부터 코드를 작성하기보단, 문제를 이해하기 위해 먼저 메모장에 ..
프로그래머스 | 콜라 문제 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(a, b, n): answer = 0 # 받은 병의 개수 while n >= a: answer += (n // a) * b n = (n // a) * b + (n % a) return answer a개의 병을 가져다주면 b개의 병으로 바꿔준다. n개의 병을 가지고 있을 때, 총 몇 개의 병을 받을 수 있는지 구하는 문제이다. 문제에서 주어진 예시(a=2, b=1, n=20)를 가지고 설명하자면 다음과 같다. a=2, b=1 이므로, 2개를 가져다주면 1개로 바꿔준다. 20개(=n)..
프로그래머스 | 2021 카카오 채용연계형 인턴십 | 숫자 문자열과 영단어 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(s): ndict = {'zero':'0', 'one':'1', 'two':'2', 'three':'3','four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'} for i in ndict: if i in s: s = s.replace(i, ndict[i]) return int(s) 문자열과 숫자가 섞여있는 s가 주어지면 숫자로 바꾸는 문제이다. s="one4seveneight"이면 1478로 바꾸면 된다. ..