코딩테스트 63

프로그래머스 - 가장 큰 정사각형 찾기 (레벨2, swift)

문제출처 programmers.co.kr/learn/courses/30/lessons/12905 문제설명 1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사각형을 찾아 넓이를 return 하는 solution 함수를 완성해 주세요. (단, 정사각형이란 축에 평행한 정사각형을 말합니다.)예를 들어12340111111111110010가 있다면 가장 큰 정사각형은12340111111111110010가 되며 넓이는 9가 되므로 9를 반환해 주면 됩니다. 제한 조건 - 표(board)는 2차원 배열로 주어집니다. - 표(board)의 행(row)의 크기 : 1,000 이하의 자연수 - 표(board)의 열(column)의 크기..

코딩테스트 2020.07.11

프로그래머스 - 행렬의 곱셈 (레벨2, swift)

문제출처 programmers.co.kr/learn/courses/30/lessons/12949 문제설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 - 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. - 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. - 곱할 수 있는 배열만 주어집니다. 입출력 예 arr1 arr2 return [[1, 4], [3, 2], [4, 1]] [[3, 3], [3, 3]] [[15, 15], [15, 15], [15, 15]] [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3..

코딩테스트 2020.07.10

프로그래머스 - 최댓값과 최솟값 (레벨2, swift)

문제출처 👇 programmers.co.kr/learn/courses/30/lessons/12939 문제설명 👀 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다. 제한 조건 - s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" 문제풀이 -> 간단한 문제이다. 1) 공백을 기준으로 문자열을 나눠준다. 2) 나눠진 문자들을 Int타입..

코딩테스트 2020.07.07

프로그래머스 - 스킬트리 (레벨2, swift)

문제출처 programmers.co.kr/learn/courses/30/lessons/49993 문제설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다.선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, ..

코딩테스트 2020.07.06

프로그래머스 - 피보나치 수 (레벨2, swift)

문제출처 👇 programmers.co.kr/learn/courses/30/lessons/12945 문제설명 👀 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 - F(2) = F(0) + F(1) = 0 + 1 = 1 - F(3) = F(1) + F(2) = 1 + 1 = 2 - F(4) = F(2) + F(3) = 1 + 2 = 3 - F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한사항 - n은 1이상, 100000이하인 자연수입..

코딩테스트 2020.07.05

프로그래머스 - 최솟값 만들기 (레벨2, swift)

문제출처 👇 programmers.co.kr/learn/courses/30/lessons/12941 문제설명 👀 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 - A에서 첫번째 숫자인 1, B에서 두번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) - A에서 두번째..

코딩테스트 2020.07.04

프로그래머스 - h-index (레벨2, swift)

문제출처 👇 programmers.co.kr/learn/courses/30/lessons/42747 문제설명 👀 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한 조건 - 과학자가 발표한 논문의 수는 1편 이상 1,000..

코딩테스트 2020.06.30

프로그래머스 - 가장 큰 수 (레벨2, swift)

문제출처 👇 programmers.co.kr/learn/courses/30/lessons/42746#qna 문제설명 👀 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 조건 - numbers의 길이는 1 이상 100,000 이하입니다. - numbers의 원소는 0 이상 1,000 이하입니다. ..

코딩테스트 2020.06.30

프로그래머스 - 프린터 (레벨2, swift)

문제출처 👇 programmers.co.kr/learn/courses/30/lessons/42587 문제설명 👀 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1..

코딩테스트 2020.06.30

프로그래머스 - 기능개발 (레벨2, swift)

문제출처programmers.co.kr/learn/courses/30/lessons/42586 문제설명프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 조건 - 작업의 개수(progresses, speeds배열의 길이)는 ..

코딩테스트 2020.06.29