프로그래머스 | 2018 KAKAO BLIND RECRUITMENT | 비밀지도 [파이썬 python]
·
Algorithm/프로그래머스
코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 school.programmers.co.kr 문제 설명까지 하면 길어질 것 같아 코드에 대한 설명만 남깁니다. 코드 def solution(n, arr1, arr2): answer = [] for i in range(n): arr1[i] = format(arr1[i], 'b').zfill(n) arr2[i] = format(arr2[i], 'b').zfill(n) temp = '' for a, b in zip(arr1[i], arr2[i]): if a == '0' and b == '0'..
프로그래머스 | 예산 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(d, budget): answer = 0 # 가능한 부서의 수 for i in sorted(d): budget -= i if budget < 0: break answer += 1 return answer 부서별로 신청한 금액이 들어있는 배열 d가 있을 때, 주어진 예산 budget으로 최대 몇 개의 부서에 지원할 수 있는지 구하는 문제이다. 최대한 혼자 풀어보기 위해 고민하고 고민했지만 어려웠다. 처음에는 조합(combinations)을 사용했지만 d의 길이가 최대 100이기 때문..
프로그래머스 | 이상한 문자 만들기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(s): answer = '' s = s.split(' ') for word in s: for i in range(len(word)): if i % 2 == 0: answer += word[i].upper() else: answer += word[i].lower() answer += ' ' return answer.rstrip() 주어진 문자열의 각 단어별 짝수번째 인덱스는 대문자로, 홀수번째 인덱스는 소문자로 나타내는 문제이다. 각 문자의 인덱스가 짝수인지 홀수인지 판..
프로그래머스 | 같은 숫자는 싫어 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(arr): answer = [arr[0]] for i in range(1, len(arr)): if arr[i] != arr[i-1]: answer.append(arr[i]) return answer 주어지는 arr에서 연속으로 같은 수가 나오면 하나를 제거한 리스트를 리턴하는 문제이다. 예를 들어, arr=[1, 1, 3, 0, 1, 1]이면 [1, 3, 0, 1]을 리턴하는 것이다. 리스트에서 중복을 제거하는 것은 set을 이용하면 가장 쉽게 할 수 있다. 하지만, set은 순..
프로그래머스 | 행렬의 덧셈 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(arr1, arr2): for i in range(len(arr1)): for j in range(len(arr1[0])): arr1[i][j] += arr2[i][j] return arr1 두 행렬 arr1, arr2를 더하는 문제이다. numpy를 사용하면 쉽게 할 수 있지만, 라이브러리를 사용하지 않고 어떻게 하면 구현할 수 있을지 고민하는데 시간이 소요되었다. 하지만 조금만 생각하면 쉽게 풀 수 있는 문제이다. 문제에서 주어진 예시를 가지고 살펴보면 다음과 같다. 행렬의 덧..
프로그래머스 | 약수의 갯수와 덧셈 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(left, right): answer = 0 for i in range(left, right+1): c, j = 0, 1 # c = 약수의 개수, j = 약수 # 약수의 개수를 구하는 과정 while j