본문 바로가기

반응형

전체 글

(102)
[프로그래머스] DFS / BFS - 타켓 넘버 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 입력 & 출력 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 출력하시오. 풀이 친절하게 DFS / BFS로 푸는 문제임을 알려주었다 숫자들을 numbers의 크기만큼 반복해서 원하는 수를 만들 수 있는지 확인한다 이 반복을 depth로 센다 depth == numbers.count 가 될 때까지 반복하..
[프로그래머스] 완전탐색 - 모의고사 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 입력 & 출력 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 풀이 정해진 패턴이 있으니 이를 먼저 선언하자 패턴에 맞게 수를 넣은 후 문제를 맞힐 경우 각자 점수를 더한다 2중 for문 보다 하나의 for문 효율이 좋으니 하나의 for문 안에 각 3가지 경우를 대입해서 푼다 Swift 전체 코드 let one =..
[프로그래머스] 완전탐색 - 카펫 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 입력 & 출력 Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 풀이 노란색은 갈색의 -2 크기이고, 카펫의 크기는 갈색 + 노란색이다 카펫 크기의 공약수를 구한다 공약수의 첫번째 + i, 마지막 - i 값을 곱해 노란색 값과 일치할 경우 이를 반환한다 + 공약수 개수가 1일 경우 정사각형이니 위 경우..
[Swift] 문자열 다루기 문자열 자르기 split : 특정 문자 기준으로 문자열을 잘라 배열로 만드는 함수 var string = "My Phone Number is 0" let array = string.split(separator: " ") // ["My", "Phone", "Number", "is", "0"] index(of: ) : 문자열 index를 바탕으로 주어진 길이만큼 범위를 반환 var string = "I love Sia Song" let range = string.index(string.startIndex, offsetBy: 9) string[string.startIndex...range] // "I love Sia" 문자열 특정 문자 없애기, 바꾸기 replacingOccureences(of : , with..
[프로그래머스] 정렬 - H-Index 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 입력 & 출력 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 풀이 값을 정렬한 후, 차례로 수를 더하며 h 값을 구하는 방법을 생각했다 [3, 0, 6 , 1, 5] 를 정렬하면 [6, 5 ,3 ,1 ,0] 이 된다 이들을 순서대로 찾아가며 h 값을 더해주고 h값이 배열의 h번보다 크다면, 그 수를..
[프로그래머스] 정렬 - K번째 수 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 입력 & 출력 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 출력하시오. 풀이 주어진 배열에서 길이만큼을 잘라 그 안의 수를 정렬해 k번의 수를 출력하는 문제다 Swift에서는 배열의 부분을 부르는 방법을 array[n...m] 을 통해 편리하게 제공한다 자르려는 문자열이 여러개 들어오니, command 개수만큼 반복해주자 우선 반복이 아닌 command가 하나인 경우로 살펴보자 ..
[프로그래머스] 정렬 - 가장 큰 수 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 입력 & 출력 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 풀이 6, 10, 2가 주어졌을 경우 이들을 정수로 만들어 비교한 후 위치를 바꾼다 610 과 106 중 큰 값은 610 이고, 102와 210중 큰 값은 210 이고, 62 와 26 중 큰 값은 62 이니 두 문자를 비교해 정렬한 값은 6 2 10 이 된다 이 추출한 가장 큰 값을 문자..
[백준] 기본 수학 2 - 1978번 소수 찾기 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 입력 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 출력 N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 주어진 수들 중 소수의 개수를 출력한다. 풀이 소수 찾기 방법을 크게 두 가지로 생각했다 하나는 미리 1000 이하의 모든 소수를 구해 저장해놓는 것과 (DP) 하나는 주어지는 값 이하의 모든 소수를 구하는 방법이다 이 문제의 경우 반복해서 수를 묻지 않음으로 후자의 방법을 사용했다 소수를 찾는 프로그램을 먼저 짠다. 소수를 찾는 방법은 자기 자신이 아..

반응형