자바 백준 10989번 수 정렬하기 3


두 가지 방법이 있다.

첫 번째 방법은 입력받은 값을 배열에 저장하고 버퍼로 출력을 받는것이다.


두 번째 방법은 버퍼에 값을 입력 받고 출력 하는 것이다.

자바 JAVA 백준 2750번 수 정렬하기


ArrayList에 입력 값을 저장해주고 sort(정렬)한다음 출력해 주면된다.



N이 40000만 보다 작다라는 조건이 있을 때부터 뭔가 있다고 생각했는데 역시는 역시다.

왠만한 알고리즘 가지고는 시간초과를 막지 못할거 같다. 

계속 생각해 보며 해법을 찾아야겠다. 그래도 코드는 한번 올려본다.


먼저 입력받은 문자를 숫자로 나눠주고 6과 9를 제외한 숫자들이 카운터 될때마다 각 해당 배열의 값을 1증가 시키고 6과 9는 홀수번째로 카운터 될때만 1씩

값을 증가시켜 구한다. 마지막에 Collection에 넣어 정렬 한 후 제일 큰 숫자를 검색해주면 된다.



 for문으로 월별 날짜를 더 해 줄수도 있었지만 이렇게 하는게 더 간단해서 했다.




이번 규칙 단계는 규칙만 찾으면 쉽게 문제를 풀 수 있다고 생각한다. 배열을 사용안해도 간단하게 풀 수 있을 거라 생각하고 문제를 풀었다. 


쉽게 풀 수 있는 문제 였는데 집중을 안하면서 했더니 코드가 이상한대로 가고 있었다..  딴 짓하면서 코딩하면 안되겠다..



입력받은 문자를 배열에 넣고 표에 입력된 값들을 아스키값으로 비교해 맞는 것이 있으면 cnt를 1증가 시켜주고 i값을 1번이나 2번 띄어넘는다. 비교값이 중복되는 것은 같이 묶어주면 되는데 다하고 나서 알아서 안고쳤다.


다음은 코드이다.



먼저 문자열을 입력받고 charAt메소드로 문자들을 아스키코드값으로 나눠 준다. 그 후 대문자 아스키코드 값 A~Z, 즉 65~90 까지의 값들을 for문으로 

그 알파벳들에 맞는 시간들을 배열에 넣는다. 



문자를 아스키코드 값으로 하나하나 나눠준후 값들을 반전시켜 비교한다. 


+ Recent posts