목록정수 (2)
코드 한 줄
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열이 주어지면 0이 아닌 정수의 순서를 유지하며 모든 0을 배열의 오른쪽으로 옮겨라 예제 } Input : [0, 5, 0, 3, -1] Output : [5, 3, -1, 0, 0] Input : [3, 0, 3] Output : [3, 3, 0] 이 문제는 0을 오른쪽으로 옮기는 것보다 0이 아닌 정수를 왼쪽으로 옮긴다고 생각하면 쉽게 풀 수 있다. void solve(int[] input) { int position = 0; // 0이 아닌 정수가 들어갈 곳 for (int i = 0; i < input.length; i++) { if (input[i] != 0) { swap(input, i, position); position++; ..
* 본 문제와 풀이의 저작권은 매일프로그래밍에 있습니다. 정수 배열이 주어지면 두 번째로 큰 값을 출력하라 예제 } Input : [10, 5, 4, 3, -1] Output : 5 Input : [3, 3, 3] Output : Does not exist. 이 문제는 가장 큰 값을 구하는 로직과 거의 똑같다. 가장 큰 값과 두 번째 큰 값을 저장할 변수를 만들고 배열 원소들과 비교하면 된다. 중요한 엣지 케이스는 배열이 0 이나 1개의 원소를 가지고 있으면 두번째 큰 값이 존재 하지 않는 것과 [3, 3, 3] 같은 경우처럼 두 번째로 큰 값은 존재 하지 않는다. 이를 계산하기 위해 두 번째 큰 값을 저장할 변수를 Integer.MIN_VALUE로 두고 for루프가 끝난 뒤 값이 변했는지 체크하면 된다..