TIL/알고리즘 공부

백준 1065번 Swift 알고리즘 연습

여의도사노비 2022. 8. 4. 18:47
728x90

그간 소홀히 했기 때문에 오늘은 2문제 풀었다.. 이번주 주말에도 풀 예정!

 

이 문제를 풀면서 생각한 논리적 흐름은

  1. 일단 '한수'를 이해하기가 너무 어렵다..! 등차긴 한데... 그래서 뭐..?
  2. 결국 이해한 것이 N을 입력했을 경우 N보다 작은 자연수 중 '등차' 성질을 지닌 숫자는 count += 1 해줘라 라고 이해했다.
  3. 그래서 1의 자릿수는 그냥 무조건 count += 1, 10의 자릿수도 막상 들여다보니...
    10, 21, 33, 89 어떤 형태가 됐든 전부 count += 1 이었다.
  4. 그렇다면 1 ~ 10의 자릿수를 입력하면 무조건 count += 1 해주고 100의 자릿수만 신경 써보자
  5. 100의 자릿수는 각 자릿수 별로 값의 차이를 구해서 그게 일치하기만 하면 등차로 볼 수 있겠다!
  6. 그렇게 일치한 경우만 count += 1 해주자! 라는 결론에 다다랐다.

 

이 문제야 말로 정말 정형화된 논리, 수학적 알고리즘이 있을 것으로 보인다... (무조건 있을듯.. ㅠ)

하지만 일단 최대한 논리적으로 접근해보려고 노력했다 사실 값이 1000 넘어가면 또 바껴야 할 코드라 문제가 많다!

 

* 1065번

 

 

정리(Today I Learned)

  1. 때로는 쉽게 가는 것도 길일지도!
  2. 특별히 알게된 지식은 없다!