아요 개발 일기

[프로그래머스] Level 1. 히샤드 수 본문

Algorithms/문제 풀이

[프로그래머스] Level 1. 히샤드 수

소진이 2023. 1. 17. 10:23

안녕하세요~~~

오늘은 히샤드 수 문제를 풀어보았습니다! 날씨가 어제보단 좋네용 ㅎ히


문제

 

제가 푼 풀이

자릿수마다 더하기 위해서 일단 x 값을 String으로 저장해주었어요!

그 후에 for in 문으로 한 자리씩 result에 더해주고, 삼항 연산자를 사용해서 나머지가 0일 경우 (히샤드 수 일경우)에는 true 

아닐 경우에는 false를 출력하도록 했습니다.


좋다고 생각한 풀이

func solution(_ x:Int) -> Bool {
    return x % String(x).reduce(0, {$0+Int(String($1))!}) == 0
}

동일하게 x 값을 String으로 변환하여 값을 더해주는 역할을 하는 고차함수 reduce를 사용하여 String의 첫번째 값과 다음 값을 더해줍니다. 그 후 나머지 값이 0 인지 판별해줍니다.

 

 

정확성 비교

제가 쓴 코드

좋다고 생각한 코드

확실히 좋다고 생각한 풀이가 빠르고 가볍네요?

저는 For-in문도 쓰고 삼항 연산자도 써서 그런가봐요ㅜㅠㅠ 

더 나은 코드를 쓸 수 있도록 화잉팅..!