코틀린/코딩테스트 36

코딩테스트 [가위 바위 보]

문제가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. https://school.programmers.co.kr/learn/courses/30/lessons/120839 풀이1. 접근1.1 관찰바위 = 0가위  = 2보 = 5 기능 : 문자열나누기. 배열에 담기. 반복문for(범위:인덱스 크기) 안에 조건문when(이기는 값을 하나씩 가져와서) 으로 확인하기. 문자열로 합치기반환 : 문자열 반환  1.2 준비 chunked() : 괄호 내 숫자만큼 문자열을 나누는 메소드joinToString() : 요소..

코딩테스트 [개미 군단]

문제개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요. https://school.programmers.co.kr/learn/courses/30/lessons/120837 풀이1. 접근1.1 관찰머쓱이와..

코딩테스트 [아이스 아메리카노]

문제머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. https://school.programmers.co.kr/learn/courses/30/lessons/120819  풀이1. 접근1.1 관찰기능 : money를 5500으로 나눈다. 몫을 담는다. money의 나머지를 구한다. 나머지를 담는다. 반환 : 배열을 리턴한다.     2. 시행착오2.1 시도가설 : /와 %연산자로 각각 연산 후 복합대입연산자로 배열에 담으면 될 것이다.class Solutio..

코딩테스트 [짝수는 싫어요]

문제정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.https://school.programmers.co.kr/learn/courses/30/lessons/120813  풀이1. 접근1.1 관찰기능 : 1부터 n까지 범위로 설정한다. 2로 나누어 나머지가 0이 아니면 answer에 담는다. 반복한다. 반환 : 배열을 리턴한다.     2. 시행착오2.1 시도가설 : for문으로 1부터 n까지 범위로 설정하고 if조건문으로 2로 나눈 나머지가 0이 아닌 경우에만 배열에 담으면 될 것이다.class Solution { fun solution(n: Int): IntArray { var answer: IntArr..

코딩테스트 [머쓱이보다 키 큰 사람]

문제머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.https://school.programmers.co.kr/learn/courses/30/lessons/120585 풀이1. 접근1.1 관찰기능 : array에서 height보다 큰 수를 확인한다. 개수를 담는다.반환 : 개수를 리턴한다.    2. 시행착오2.1 시도가설 : count에 {}조건으로 it이 height보다 큰지 확인하여 개수를 세면 될 것이다.class Solution { fun solution(array: In..

코딩테스트 [중복된 숫자 개수]

문제정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요. https://school.programmers.co.kr/learn/courses/30/lessons/120583 풀이1. 접근1.1 관찰기능 : array에서 n을 확인한다. 개수를 담는다.반환 : 개수를 리턴한다.   1.2 준비 count() : 배열, 컬렉션 등의 요소를 확인해서 개수를 세어주는 메소드Boolean형으로 확인 후 Int형으로 반환해준다.조건이 필요할 땐 중괄호를 사용하며 {}코드블록 안에는 일반적으로 람다식이 들어간다.(람다식만 가능한 건 아님)람다식 내 it은 따로 선언하지 않아도 count할 배열, 컬렉션 등의 요소로..

코딩테스트 [옷가게 할인 받기]

문제머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요. https://school.programmers.co.kr/learn/courses/30/lessons/120818 풀이1. 접근1.1 관찰금액당 할인 비율은 10만원이상 : 5%, 30만원이상 : 10%, 50만원이상 20%. 금액 n일 때 할인비율x를 구해야한다.n * 할인율 / 100으로 할인받은 금액을 구한다. 소수점 이하는 버린 정수를 반환한다.   1.2 준비금액에 따라 조건 나누기10만원~29만원 -> 5%3만원~49만원 -> 10%50만원이상 -> ..

코딩테스트 [피자 나눠먹기(1)]

문제머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.https://school.programmers.co.kr/learn/courses/30/lessons/120814  풀이1. 접근1.1 관찰피자 한 판에 일곱조각이다. 1 : 7의 비율. 사람이 n명일 때 피자 x판을 구해야한다. 모든 사람이 한 조각 이상 먹어야한다.  n을 7로 나누고 나머지가 없으면 몫을, 나머지가 있다면 몫+1이다.     2. 시행착오2.1 시도가설 : 조건문when으로 n을 7로 나눈 나머지가 0이 아니면 n을 7로 나눈 값에 1을 더해주고, 0이면 n을 7..

코딩테스트 [배열의 평균값]

문제정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. https://school.programmers.co.kr/learn/courses/30/lessons/120817 풀이1.1 관찰배열의 평균값을 구하는 문제입력 : 배열(정수)출력 : 실수   1.2 계획기능 : 각 배열의 요소를 더한다. 총합을 배열의 크기로 나눈다.반환 : 평균값을 리턴한다.       2. 시행착오2.1 시도class Solution { fun solution(numbers: IntArray): Double { var answer: Double = 0 for(i in numbers.indices){ ..

코딩테스트 [배열 두배 만들기]

문제정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요. 풀이1. 접근1.1 관찰기능 : numbers 배열 각 요소에 2를 곱한다. answer 배열에 담는다.반환 : answer 배열을 리턴한다.    2. 시행착오2.1 시도가설 : 반복문 for문으로 배열 내 각 요소를 조건으로 설정하고, 배열 내 각 요소에 2를 곱해주면 될 것이다.class Solution { fun solution(numbers: IntArray): IntArray { var answer: IntArray = intArrayOf() for (i in numbers) {i*2} re..