We.TIL 번외 : 1을 제외한 최소약수 구하기(while loof 이용)

김기욱·2020년 7월 23일
0

We.TIL

목록 보기
6/69

문제

find_smallest_integer_divisor 라는 이름의 함수를 구현해 주세요.

find_smallest_integer_divisor 함수는 하나의 parameter를 받습니다. Parameter 값은 integer만 주어집니다. find_smallest_integer_divisor 주어진 parameter 값을 나눌 수 있는 1을 제외한 최소의 양의 정수를 리턴하여야 합니다.

나의 해답

원리 : div_list라는 빈 리스트를 만들고 1에서부터 임의의 숫자 numb까지 while문을 동작시켜 약수를 리스트에 담는다. 그렇다면 numb의 약수가 담긴 리스트(div_list)가 만들어진다. 만들어진 리스트의 첫 번째는 무조건 1이므로 div_list[2]를 리턴하면 1을 제외한 최소약수가 구해진다.

예시답안

원리 : 1보다 커야하므로 i값을 2부터 시작한다. while과 != 이용해
같지않으면(!=) 1씩 커지게 해서 최소약수값이 나오면 while loof가 끝나게 되고 이를 리턴해주는 방식이다.

비교평

리스트나 쓸데없는 약수를 다 담아서 찾는 복잡한 방식이 아니라 간결하게 몇 줄만으로 끝내고 속도도 훨씬 빠른 코딩이다. 돌아서 생각하지말고 직관적인 해결법을 찾도록 노력해야겠다. 아무래도 이전단원이 list단원이 많다보니 나도 모르게 solution을 리스트로 찾는 방식을 쓰고있었나보다.

profile
어려운 것은 없다, 다만 아직 익숙치않을뿐이다.

0개의 댓글