규칙을 찾는 문제로써 표를 통해 1부터 20까지의 예를 나타내 보았다.



여기서 작동 횟수가 1씩 커지는 것이 2번에 걸처 반복되면 반복 횟수(즉, 차이가 1씩 증가하는 횟수의 그룹)도 1씩 증가하는 것을 볼 수 있다.

이것을 코딩해봤는데 계속 시간 초과가 뜬다..

 시간 초과된 코드이다.


 다음은 더 간단히 만든 코드이다.


계속 시간 초과가 뜨는데 더 좋은 방법을 알고계신분은 댓글로 남겨주세요...


자리수가 2이상 차이나는 문자열을 비교하여 같은 값을 찾으면 flag를 반전시켜 주면 끝날줄알았는데 아니었다..

이웃하는 값들의 값을 제외하고 같은 값을 찾아 줘야 하기 때문이다. 그것때문에 10분 더 걸렸다.

자세한 내용은 코드에 주석을 달았다.


문제를 잘읽고 풀어야겠다는 생각을 심어준 문제이다. 제대로 풀었는데 왜 틀렸다고 나오는지 해맸는데 문제를 잘못 이해한것이다. 

while문을 돌리며 cnt를 1씩 증가시켜 cnt가 홀수일때와 짝수일때를 나눠서 풀면 쉽게 해결할 수 있는 문제이다.


그림때문에 어렵게 보일수 있지만 메모장에 숫자들을 적어 규칙을 찾아보면 쉽다.



코드


ArrayList를 사용해서 정렬한뒤 값을 구하면 될줄 알았는데 ArrayList가 아직 숙달 되지 않아서 쓰지 못했다.

arraylist에 값을 저장하는 방법이 있는지, 있으면 어떻게 써야 하는지 찾아봐야겠다. 

그냥 배열에 값을 저장하고 문제를 풀었다.


형 변환 한다고 시간이 꽤 걸렸다. 앞에서 썼던 것들을 잘 활용하면 쉽게 풀 수 있는 문제이다.


풀이 :

입력 받은 알파벳을 아스키코드를 통해 숫자로 변경 후 배열에 저장한다. 자세한 풀이는 주석에 있다.



charAt(0) 을 통해 입력 받은 값들 char형 변수에 할당한다.



빠르게 짰다.


+ Recent posts