나의 답 )
import Foundation
func solution(_ number:Int, _ n:Int, _ m:Int) -> Int {
if number % n == 0 && number % m == 0 {
return 1
} else {
return 0
}
}
문제를 봤을 때 답이 두가지 중 하나이다 하면 항상 삼항연산자를 먼저 생각한다.
사실 삼항연산자를 사용하면 코드도 짧아져서 더 간단해보이고 좋은데,
이번엔 가독성 면에서 더 명확하게 풀고 싶은 마음이 컸다.
그래서 if else
방법으로 접근했고, 삼항연산자 방법으로도 풀어봤다.
간단한 문제에서는 사실 코드의 간결함이 중요하다고 생각하지만,
팀 협업이나 조건이 복잡한 문제에서는 그래도 가독성을 위해 삼항연산자 대신 if - else
를 사용 할 필요가 있을 듯 하다
.
.
.
삼항 연산자 풀이)
import Foundation
func solution(_ number:Int, _ n:Int, _ m:Int) -> Int {
return (number % n == 0 && number % m == 0) ? 1 : 0
논리 연산자 중 && 앤드 (And) 연산자를 이용해서 두 조건이 모두 참 일때만 결과를 true로 반환이 되는데,
그때 true
면 삼항연산자를 따라 1 이 될 것이고, fals
라면 0 이 될 것이다.
삼항 연산자는 ?
다음 앞에 오는 것이 참이기 때문.
삼항 연산자는 단순한 조건을 처리할 때 코드의 가독성과 간결성을 높이는 데 효과적이라는 것을 다시 한 번 깨달았던 것 같다.
하지만 복잡한 조건에서 사용하면 오히려 읽기 어렵게 만들 수 있는게 삼항연사자라고 생각한다.
동일한 문제를 삼항 연산자와 if-else로 구현해봤는데,
다양한 풀이 방식을 동해 상황에 따라 코드 스타일을 선택하는 것이 중요할 것 같다.
% 연산자를 활용해 배수를 판별하는 기본적인 방법을 전 문제에서도 풀었었다.
이걸 조건문과 연결해서 문제를 해결하는 연습도 하니
역시 프로그래머스 기초 코딩테스트는 내가 개발자로서 바닥을 다질 수 있도록
이렇게 이렇게 풀어봐 라는 의도가 느껴지는게 너무너무 좋다.
간단한 문제라도 다양한 접근 방식으로 생각해 보는 습관이 중요하다고 느끼는 날이다.
코드를 짧게 작성하려고만 하지 말고,
읽기 쉽고 명확한 코드를 작성하려는 태도를 가져야겠다고도 생각했다.
베리 굿~
소개글 왤케 짧아졌어요