본문 바로가기

티스토리챌린지

(17)
코딩테스트 입문 (feat. Day 16 문자열, 수학, 배열, 조건문) 1. 편지Q. 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.func solution(_ message:String) -> Int { return message.count * 2} A. 전달 받은 message의 길이에 2를 곱한 값을 반환하여 해결했다. 2. 가장 큰 수 찾기Q. 정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.func solution(_ array..
코딩테스트 입문 (feat. Day 15 문자열, 해시, 배열, 수학) 1.  영어가 싫어요Q. 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.func solution(_ numbers:String) -> Int64 { var result: String = numbers .replacingOccurrences(of: "zero", with: "0") .replacingOccurrences(of: "one", with: "1") .replacingOccurrences(of: "two", with: "2") .replacingOccurrences(of: "three",..
코딩테스트 입문 (feat. Day 14 문자열, 배열, 사칙연산, 수학, 조건문) 1.  가까운 수Q. 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. (가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.)func solution(_ array:[Int], _ n:Int) -> Int { var result: Int = 0 var minValue: Int = 100 array.forEach { let gap = abs($0 - n) if minValue > gap { minValue = gap result = $0 } else if minValue == ga..
코딩테스트 입문 (feat. Day 13 문자열, 배열, 사칙연산, 수학, 조건문) 1.  컨트롤 제트Q. 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.func solution(_ s:String) -> Int { var result: Int = 0 var preValue: Int = 0 s.components(separatedBy: " ").forEach { if $0 == "Z" { result -= preValue } else { preValue = ..
코딩테스트 입문 (feat. Day 12 문자열, 정렬, 사칙연산, 수학) 1.  모음 제거Q. 영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.func solution(_ my_string:String) -> String { return my_string.filter { $0 != "a" }.filter { $0 != "e" }.filter { $0 != "i" }.filter { $0 != "o" }.filter { $0 != "u"}} A. 전달 받은 my_string을 고차 함수 filter를 5번 활용해 모음을 제거한 문자열을 반환하여 해결했다. feat.func solution(_ my_string:String)..
코딩테스트 입문 (feat. Day 11 수학, 반복문) 1. 주사위의 개수Q. 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.func solution(_ box:[Int], _ n:Int) -> Int { return (box[0] / n) * (box[1] / n) * (box[2] / n)} A. 상자의 가로, 세로, 높이를 전달 받은 n으로 나눴을 때의 몫을 모두 곱한 값을 반환하여 해결했다.2. 합성수 찾기Q. 약수의 개수가 세 개 이상인 수를 합성수라고 합니다...
코딩테스트 입문 (feat. Day 10 수학, 문자열, 해시, 완전탐색, 조건문) 1.  점의 위치 구하기Q. 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.func solution(_ dot:[Int]) -> Int { return dot[0] > 0 ? dot[1] > 0 ? 1 : 4 : dot[1] > 0 ? 2 : 3} A. 전달 받은 dot의 x 좌표를 먼저 0보다 큰 지 비교한 후,크면 y 좌표를 0보다 큰 지 비교하여 크면 1 작으면 4를 반환하고작으면 y 좌표를 0보다 큰 지 비교하여 크면 ..
코딩테스트 입문 (feat. Day 9 수학, 문자열, 해시, 완전탐색, 조건문) 1.  개미 군단Q. 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.func solution(_ hp:Int) -> Int { return hp / 5 + hp % 5 / 3 + hp % 5 %..