Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- firestore
- AutoLayout
- Swift코딩테스트
- ios면접
- 리팩터링
- 앱의생명주기
- 프로그래머스
- 클린코드
- 카카오맵클론
- Safari Inspector
- storekit2
- TDD
- css학습
- five lines of cdde
- algorithm
- Di
- RxSwift
- ARC
- hackerrank
- five lines of code
- unittest
- SWIFT
- alamofire
- Swift디자인패턴
- UIKit
- 코딩테스트입문
- mrc
- firebase
- IOS
- RC
Archives
- Today
- Total
샘성의 iOS 개발 일지
[코딩테스트 입문] 순서쌍의 개수 본문
728x90
문제 설명:
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
내 풀이:
func solution(_ n:Int) -> Int {
// 결과를 카운팅 할 변수
var result = 0
// 바로 나누어떨어지면 result + 1
for i in 1...n {
if n % i == 0 {
result += 1
}
}
return result
}
회고:
처음엔 2개의 수로 곱해야한다는 것에 사로잡혀 for loop문 2개를 중첩해 풀었다가, 50%는 시간초과로 오답 처리를 받아서 50% 정답률을 받았다. 생각해보니 바로 나누어떨어지는 것이 즉 2개의 수로 곱한 값이 된다는 것을 깨닫게 되었다.
고차함수 중 filter를 사용하여 간단하게 풀 수 있을 것 같아 추가적으로 풀어보았다.
1~n까지의 정수 중, n과 나누어떨어지는 수를 filter해서 배열에 담고, 해당 배열의 요소 갯수를 count하는 방식이다.
문제에 써있는 글자나 숫자에 얽메이지 않고 의도를 파악하는 연습이 더욱 필요하다 느꼈다.
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
[코딩테스트 입문] 모스 부호 (1) (2) | 2023.05.10 |
---|---|
[코딩테스트 입문] 개미 군단 (0) | 2023.05.10 |
[코딩테스트 입문] 진료 순서 정하기 (0) | 2023.05.09 |
[프로그래머스 입문] 배열 자르기 (0) | 2023.05.08 |
[코딩테스트 입문] 특정 문자 제거하기 (0) | 2023.05.06 |