오늘은 전에 풀었던 문제의 재탕이다. 왜 이런 쓸데없는 짓을 하냐고 할 수도 있지만 나름 이유가 있었다. 추후, 따로 글을 작성해보겠다.. 문제 풀이 가장 앞에서 말했듯이 이미 코틀린으로 한 번 풀었던 문제지만 그대로 Swift언어로 작성해보았다. 먼저, 기존에 쓰던 코틀린과 달리 for문을 사용할 때 조건식에 괄호가 필요없다. 게다가, 코틀린에서는 for문의 실행문이 1줄이라면 중괄호를 생략할 수 있었지만 Swift는 무조건 중괄호가 필요했다. 생각보단 언어가 어색하다. 그래도 React Native를 접해본 경험은 있어 어색하지 않으리라 생각했는데 React Native에 관심이 없어서 그랬는지.. 암튼 조금 친해질 시간이 필요한 것 같다.
이번에 풀어본 문제는 의식의 흐름대로 풀다보니 코드가 길어진 감이 없지 않아 있는데... 아직 줄여쓰는 것이 익숙치 않다. 문제 중첩된 for문과 그 안에서 조건문을 같이 사용하다보니 반복문과 조건문 또는 다른 실행문의 순서가 조금 헷갈리긴 했지만 천천히 '의식의 흐름'대로 되짚어 가며 풀었다. 풀이 가장 먼저 주어지는 두 정수 사이의 수만큼 반복하기 위해 left에서 right까지 반복하도록 조건을 설정했고 각각의 수마다 약수의 개수를 판단하기 위해 해당하는 수를 1부터 1씩 증가시키며 해당하는 수까지 나머지 연산을 통해 약 찾을 때마다 cnt 변수를 1씩 증가시켜 약수의 개수를 저장해두고 반복문이 끝나면 cnt 변수를 통해 약수의 개수가 짝수이면 리턴될 answer 변수에 더해주고 홀수이면 뺄셈을 해..
오늘은 비교적 간단한 문제를 풀어보려 한다. 문제 먼저 약수를 어떻게 구하지? 사실 되게 기초적인 내용이지만 몇 초안에 바로 답을 내기가 힘들었다. 그냥 배운지 너무 오래돼서 그런건가 싶기도 했다. 누가 보면 비웃을지도 모를만한 내용이지만 뭐 내가 그런걸 어쩌겠나 싶다. 다만 계속 노력할 뿐이다. 아무튼 약수를 구하는 법을 생각하다보니 그냥 나누어떨어지면 모두 약수라는 생각이 드디어 떠올랐다. 그럼 나누어 떨어지는 수를 찾으면 될 것인데 갯수가... 몇 개더라? 무슨 공식이 있었던 것 같은데 기억이 나지 않는다. 그냥 단순히 1부터 주어진 수까지 반복하면서 나머지 연산이 0이 되면 그 수는 약수이기에 리턴될 answer 변수에 더해주었다. 풀이 for문 안에 n까지 반복할 때 조건이 until이 아닌 ...