문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
제한 조건
n은 길이 10,000이하인 자연수입니다.
1차 고민
맨 처음에는 while문으로 입력값인 n을 var num에 담아서 홀수 짝수마다 번갈아가며 arr에 담고 joined()를 통해서 문자열을 리턴하고자 했다.
그런데 생각해보니 3일 때는 수박수, 4일 때는 수박수박이 나와야하는데
내 방식대로 할 경우 3을 입력하면 박수박 이 리턴될 것이 뻔했다.
배열의 끝 인덱스부터 채우는 느낌으로 stack 개념을 활용한 배열을 사용했다면 할 수 있었겠지만 그렇게까지 비효율적으로? 라는 생각이 들었기에
그냥 n이 어떤 수가 되든 1부터 세어버리면 되겠다는 느낌을 받았고, for문을 쓰기로 했다. (사실 while n >= i) 도 되었을 것 같기는 하다.
1차 코드
func solution(_ n:Int) -> String {
var res = ""
for i in 1...n {
if i % 2 == 1 {
res.append("수")
} else {
res.append("박")
}
}
return res
}
1차 결과

다른 사람의 풀이
func solution(_ n:Int) -> String {
return "\(String(repeating: "수박", count: n / 2))\(n % 2 == 0 ? "" : "수")"
}
수박을 repeating해서 홀수일 경우 "수"를 더해주는 간단한 코드...
가독성이 너무 좋다.
'iOS > Programmers' 카테고리의 다른 글
[Swift] lv.1 약수의 개수와 덧셈 | Programmers (1) | 2024.03.12 |
---|---|
[Swift] lv.1 가운데 글자 가져오기 | Programmers (0) | 2024.03.11 |
[Swift] lv.1 내적 | Programmers (0) | 2024.03.07 |
[Swift] lv.1 제일 작은 수 제거하기 | Programmers (0) | 2024.03.06 |
[Swift] lv.1 콜라 문제 | Programmers (0) | 2024.03.06 |
문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
제한 조건
n은 길이 10,000이하인 자연수입니다.
1차 고민
맨 처음에는 while문으로 입력값인 n을 var num에 담아서 홀수 짝수마다 번갈아가며 arr에 담고 joined()를 통해서 문자열을 리턴하고자 했다.
그런데 생각해보니 3일 때는 수박수, 4일 때는 수박수박이 나와야하는데
내 방식대로 할 경우 3을 입력하면 박수박 이 리턴될 것이 뻔했다.
배열의 끝 인덱스부터 채우는 느낌으로 stack 개념을 활용한 배열을 사용했다면 할 수 있었겠지만 그렇게까지 비효율적으로? 라는 생각이 들었기에
그냥 n이 어떤 수가 되든 1부터 세어버리면 되겠다는 느낌을 받았고, for문을 쓰기로 했다. (사실 while n >= i) 도 되었을 것 같기는 하다.
1차 코드
func solution(_ n:Int) -> String {
var res = ""
for i in 1...n {
if i % 2 == 1 {
res.append("수")
} else {
res.append("박")
}
}
return res
}
1차 결과

다른 사람의 풀이
func solution(_ n:Int) -> String {
return "\(String(repeating: "수박", count: n / 2))\(n % 2 == 0 ? "" : "수")"
}
수박을 repeating해서 홀수일 경우 "수"를 더해주는 간단한 코드...
가독성이 너무 좋다.
'iOS > Programmers' 카테고리의 다른 글
[Swift] lv.1 약수의 개수와 덧셈 | Programmers (1) | 2024.03.12 |
---|---|
[Swift] lv.1 가운데 글자 가져오기 | Programmers (0) | 2024.03.11 |
[Swift] lv.1 내적 | Programmers (0) | 2024.03.07 |
[Swift] lv.1 제일 작은 수 제거하기 | Programmers (0) | 2024.03.06 |
[Swift] lv.1 콜라 문제 | Programmers (0) | 2024.03.06 |