본문 바로가기

코딩 테스트 풀이

(35)
그리디 알고리즘 - 큰 수의 법칙 문제 설명 다양한 수 N개로 이루어진 배열이 있을 때, 이 수들을 M번 더해 가장 큰 수를 만드는 법칙 특정 인덱스에 해당하는 수가 연속해서 K번을 초과해서 더해질 수 없음 문제 조건 첫째줄에 N(2 ≤ N ≤ 1000), M(1 ≤ M ≤ 10000)M, K(1 ≤ K ≤ 10000)가 주어지며, 각 자연수는 공백으로 구분한다 둘째줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단 각각의 자연수는 1 이상 10000 이하의 수로 주어진다 입력으로 주어지는 K는 M보다 항상 작거나 같다 입력 예시 5 8 3 2 4 5 4 6 출력 : 46 N개의 수들을 M번 더해 가장 큰 수를 만드는 문제였다. 단, 같은 수는 K번 이상 더할 수 없다. 아이디어 : 배열 내에서 가장 큰 수들을 더함 제한..
[LV1] 햄버거 만들기 마침 햄버거를 시킨 참인데 잘 됐다.문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다.예를 들어, 상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵]일 때, 상수..
[LV1] 체육복 이제부터 코드블록에 주석을 써야 할 것 같다. 내 코드를 내가 분석하는 일이 생기고 있다...문제 설명점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질..
[LV1] 다트 게임 문제 설명다트 게임카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다.갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다.다트 게임은 총 3번의 기회로 구성된다.각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다.점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다.옵션으로 스타상(*) , 아차상(#)이..
[LV1] 소수 찾기 데스크탑을 새로 맞췄는데 스피커가 없어 소리가 안난다. 앰프에 연결해보니 됐다. 이왜진?문제 설명1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.)제한 조건n은 2이상 1000000이하의 자연수입니다.입출력 예nresult10453입출력 예 설명입출력 예 #11부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환입출력 예 #21부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환문제 자체는 쉬웠던 것 같다. 다만....유효성 검사에서 발목을 잡혀 원래 하려던 방식을 구현하지 못하였다. 처음에 생각했던건n까지 for문실행(변수 i)for문 안에 1..
[LV1] 문자열 내 마음대로 정렬하기 슬슬 HTML이랑 CSS에 대한 기억이 흐릿해져 가고 있다...복습해야됨!문제 설명문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.제한 조건strings는 길이 1 이상, 50이하인 배열입니다.strings의 원소는 소문자 알파벳으로 이루어져 있습니다.strings의 원소는 길이 1 이상, 100이하인 문자열입니다.모든 strings의 원소의 길이는 n보다 큽니다.인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다...
[LV1] 행렬의 덧셈 사람들이 lv0을 건너뛰고 lv1부터 시작하는지 lv1 문제에는 질문글이 엄청나게 많았다. lv0 안풀고 왔으면 이걸 손도 못댔겄지...문제 설명행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.제한 조건행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.입출력 예arr1arr2return[[1,2],[2,3]][[3,4],[5,6]][[4,6],[7,9]][[1],[2]][[3],[4]][[4],[6]]흔한 행렬의 덧셈 문제였다. 문제는 2차원 행렬이었다는 것...!일차원 행렬의 덧셈이나, 두 행렬의 덧셈 같은 경우에는 red..
[LV0] 옹알이(1) 드디어 마지막 문제..문제 설명머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.제한사항1 ≤ babbling의 길이 ≤ 1001 ≤ babbling[i]의 길이 ≤ 15babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.문자열은 알파벳..