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 | 29 | 30 | 31 |
Tags
- Swift디자인패턴
- 카카오맵클론
- firebase
- RxSwift
- ARC
- 반응형프레임워크
- algorithm
- ReactorKit UnitTest
- 시험에자주나오는것만
- Safari Inspector
- Di
- TDD
- firestore
- hackerrank
- Bubble Search
- unittest
- alamofire
- RC
- iOS앱 디버깅
- SWIFT
- HackersRank
- UIKit
- 프로그래머스
- ios면접
- IOS
- 코딩테스트입문
- Swift코딩테스트
- 앱의생명주기
- AutoLayout
- mrc
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 |