1. 피자 나눠 먹기 (2)
Q. 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
func solution(_ n:Int) -> Int {
var remainder: Int = 1
while 6 * remainder % n != 0 {
remainder += 1
}
return remainder
}
2. 피자 나눠 먹기 (3)
Q. 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
func solution(_ slice:Int, _ n:Int) -> Int {
return n % slice == 0 ? n / slice : n / slice + 1
}
3. 옷가게 할인 받기
Q. 머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.(8점)
func solution(_ price:Int) -> Int {
var coin: Double = Double(price)
var discount: Double = 0
if coin >= 500000 {
discount = coin * 0.2
} else if coin >= 300000 {
discount = coin * 0.1
} else if coin >= 100000 {
discount = coin * 0.05
}
return Int(coin - discount)
}
4. 아이스아메리카노
Q. 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
func solution(_ money: Int) -> [Int] { [money / 5500, money % 5500] }
5. 삼각형의 완성조건 (1)
Q.선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
func solution(_ sides: [Int]) -> Int {
var sortedSides = sides.sorted()
return sortedSides[0] + sortedSides[1] > sortedSides[2] ? 1 : 2
}
func solution(_ sides:[Int]) -> Int {sides.reduce(0) {$0+$1} - sides.max()!*2 > 0 ? 1 : 2}
6. 점의 위치 구하기
Q. 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.
func solution(_ dot:[Int]) -> Int {
var x = dot[0] > 0 ? "+" : "-"
var y = dot[1] > 0 ? "+" : "-"
switch [x, y] {
case ["+", "+"]: return 1
case ["+", "-"]: return 4
case ["-", "+"]: return 2
default: return 3
}
}
7. 짝수 홀수 개수
Q. 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
func solution(_ num_list:[Int]) -> [Int] {[num_list.filter {$0%2==0}.count, num_list.filter {$0%2==1}.count]}
8. 편지
Q. 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.
func solution(_ message:String) -> Int {message.count * 2}
9. 특정 문자 제거하기
Q. 문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
func solution(_ my_string:String, _ letter:String) -> String {
my_string.filter {$0 != Character(letter)}
}
10. 배열 원소의 길이
Q. 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
func solution(_ strlist:[String]) -> [Int] {strlist.map {$0.count}}
11. 배열 자르기
Q. 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
func solution(_ numbers:[Int], _ num1:Int, _ num2:Int) -> [Int] {numbers[num1...num2].map {$0}}
12. 최댓값 만들기
Q. 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
func solution(_ numbers:[Int]) -> Int {
numbers.sorted(by: >)[...1].reduce(1){$0*$1}
}
13. 문자 반복 출력하기
Q. 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
func solution(_ myString:String, _ n:Int) -> String {
return myString.map {String(repeating: $0, count: n)}.reduce("") {$0+$1}
}
func solution(_ myString:String, _ n:Int) -> String {
return myString.map {String(repeating: $0, count: n)}.joined()
}
14. 문자열 안에 문자열
Q. 문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
func solution(_ str1:String, _ str2:String) -> Int {
str1.contains(str2) ? 1 : 2
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'Mobile > Swift' 카테고리의 다른 글
[코딩테스트 입문] Swift - Day 7 (0) | 2023.01.12 |
---|---|
[코딩테스트 입문] Swift - Day 6 (0) | 2022.12.28 |
[코딩테스트 입문] Swift - Day 4 (0) | 2022.12.19 |
[코딩테스트 입문] Swift - Day 3 (0) | 2022.12.19 |
[코딩테스트 입문] Swift - Day 2 (0) | 2022.12.19 |