프로그래머스
[프로그래머스] 코딩테스트 연습2017 팁스타운 짝지어 제거하기
문제 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니..
[프로그래머스] 코딩테스트 연습깊이/너비 우선 탐색(DFS/BFS)타겟 넘버
문제 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타깃 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟타깃 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타깃 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 입력 & 출력 입출력 예 numberstargetreturn [1, 1, 1, 1, 1] 3 5 [4, 1, 2, 1] 4 2 ..
[프로그래머스] 코딩테스트 연습월간 코드 챌린지 시즌1내적
문제 문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a [0]*b [0] + a [1]*b [1] + a [n-1]*b [n-1]입니다. (n은 a, b의 길이) 입력 & 출력 입출력 예 abresult [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 새로 사용한 함수 zip() , 두 가지 변수를 엮어주는 함수입니다. for문 활용 시에 두 변수를 같이 돌려줘야 할 때나 enumerate 등을 이용해서 인덱스 접근해서 사용하려고 할 때 대신 사용할 수 있어서 좋습니다. 풀이 과정 1. 두 가지 변수를 zip 함수로 엮어서 for문을 이용하여..
[프로그래머스] 코딩테스트 연습연습문제 직사각형 별찍기
문제 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 입력 & 출력 예시 입력 5 3 출력 ***** ***** ***** 새로 사용한 함수 ''.join(lst) 배열에 저장된 값을 일렬로 뽑아낼때 사용 ''부분에 ' ' 등으로 하면 한칸 띄운 상태로 가공이 가능하다. 풀이 과정 1. 아주 간단한 문제로 입력값 두개를 받아서 이를 이용하여 2중 for문을 구성 2. 각 배열의 value값은 *을 넣을 수 있게 한다. 3. 해당 배열을 순서대로 출력하면 끝 4. 다른 과정은 문제없이 만들었지만 마지막 print문에서 문자열 처리하는 것은 검색을 이용하여 사용했다. 코드 a, b = ma..
[프로그래머스] 코딩테스트 연습힙(Heap)더 맵게
문제 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 입력 & 출력 입..
[프로그래머스] 코딩테스트 연습월간 코드 챌린지 시즌3 없는 숫자 더하기
문제 문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 입력 & 출력 입출력 예 numbersresult [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 풀이 과정 1. 간단한 문제라고 생각했다. 비교할 문자열이 하나 필요하고 해당 문자열을 비교하면서 같은 숫자라고 한다면 pop을 해주면 쉽게 해결된다고 생각했다. 2. 같은 숫자일 때 해당 인덱스를 알기 위해서 for 문과 in enumerate를 사용하여 for문을 돌아가는 문자열 이외에 증가하는 i 값을 사용하였다. 코드 def solution(..