쉬운 자바 코딩 문제..
본문
저는 이번에 처음 자바에 접하게된 학생인데
안풀리는 문제가 하나있네요..ㅠ
시퀀스가 n 인 range 가 k 와 k+n 이고 k 는 랜덤한 숫자인데
여기서 n+1 이없어요..
예를들어서 input 이 17 19 18 12 13 15 16 이라면
12 13 15 16 17 18 19 로 순서대로 정렬되고
output 이 14가 나와야하는데..
이코드 쉬워보이는데 어떻게 짤까요?
안풀리는 문제가 하나있네요..ㅠ
시퀀스가 n 인 range 가 k 와 k+n 이고 k 는 랜덤한 숫자인데
여기서 n+1 이없어요..
예를들어서 input 이 17 19 18 12 13 15 16 이라면
12 13 15 16 17 18 19 로 순서대로 정렬되고
output 이 14가 나와야하는데..
이코드 쉬워보이는데 어떻게 짤까요?
답변 1
음 인풋숫자중에 min값과 max값 두개를 구한 다음에.
min = a, max = b, k개의 인풋 배열을 x[k]라 칩시다.
그리고 for(int i = a; i < b; i++) 로 포문 안에
인풋값들을 또 포문 돌려서 for ( int j = 0; j < k; j++) 로 포문 돌려서
그 안에 if 문으로 비교하면될거같네요
소스 :
output 배열을 output[k], output값을 outputValue라 하면
for (int i = a; i<b; i++){
for(int j = 0; j<k; j++){
if(i == x[k]){
output[i-a] = i; // 배열 순서대로 정렬해서 넣어줌
continue; // 빈칸이 없으므로 다음으로 넘어감.
}else if(i != x[k] && j == k-1)
outputValue = i; //끝까지 포문 돌렸는데 일치 값이 없을 때 outputValue
}
}
}
이런식으로 짜주면 될거같네요
min = a, max = b, k개의 인풋 배열을 x[k]라 칩시다.
그리고 for(int i = a; i < b; i++) 로 포문 안에
인풋값들을 또 포문 돌려서 for ( int j = 0; j < k; j++) 로 포문 돌려서
그 안에 if 문으로 비교하면될거같네요
소스 :
output 배열을 output[k], output값을 outputValue라 하면
for (int i = a; i<b; i++){
for(int j = 0; j<k; j++){
if(i == x[k]){
output[i-a] = i; // 배열 순서대로 정렬해서 넣어줌
continue; // 빈칸이 없으므로 다음으로 넘어감.
}else if(i != x[k] && j == k-1)
outputValue = i; //끝까지 포문 돌렸는데 일치 값이 없을 때 outputValue
}
}
}
이런식으로 짜주면 될거같네요
답변을 작성하시기 전에 로그인 해주세요.