๐ 1. ๋ฌธ์ ์ค๋ช

๐ก 2. ํ์ด๊ณผ์
n๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฅผ ๊ตฌํ๋ ค๋ฉด n์์ ํด๋น ์์๋ฅผ ๋บ ๊ฐ์ด ์ ์ผ ์์์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
์ฆ `n - array[i]` ์ ์ ๋๊ฐ์ด 0์ด๊ฑฐ๋ ๊ฐ์ฅ ์์ ๊ฒ์ ๊ตฌํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ค.
์ฒ์์๋ n - array[i] ์ด ํ์ฌ min ์ ์ ์ฅ๋ ์ต์๊ฐ๋ณด๋ค ์์ผ๋ฉด
์ต์๊ฐ์ min์, ํด๋น ์์์ ๋ฐฐ์ด index๋ฅผ answer ๋ณ์์ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค.
ํ์ง๋ง ์ฝ๋๊ฐ ์์๋๋ก ๋์๊ฐ์ง ์์๋ค.
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
int min = Math.abs(n - array[0]);
int answer = 0;
for(int i = 1 ; i < array.length; i++) {
if (Math.abs(n - array[i]) < min ); {
Math.abs(n - array[i]);
answer = i;
}
}
return answer;
}
}

๋ด๊ฐ ์ด ์ฝ๋๋ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ์ธ๋ฑ์ค(answer)๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ํ๋ฆฐ ๊ฒ ๊ฐ๋ค.
`return answer`์ `return array[answer]` ๋ก ๋ณํํ๊ณ ํ ์คํธ ์ฝ๋๋ฅผ ๋๋ฆฌ๋๊น ํต๊ณผ

๊ทผ๋ฐ ๋ต์ ์ ์ถ ํ๋๊น ๋ค๋ฅธ ํ ์คํธ ์ผ์ด์ค์์ ๋ค ํ๋ฆผ..
์ ํ๋ 27.8๋ก ํ๋ ธ๋ค๊ณ ํจ... ๋๋ค..

๐จโ๐ป 3. ์ ๋ต์ฝ๋
๋ฌธ์ ์ ํ์ฌํญ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ ๋ ์์ ์๋ฅผ return ํ๋ผ๋ ์กฐ๊ฑด์ด ์์๋ค.
์ฐจ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๋ ์์ ๊ฐ์ ์ ํํ๋๋ก ํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ ํด๊ฒฐํ๋ค.
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
// n๊ณผ ๋ฐฐ์ด ์ฒซ๋ฒ์งธ ์์์ ์ฐจ์ด์ ์ ๋๊ฐ์ผ๋ก ์ค์
int min = Math.abs(n - array[0]);
// ์ฒ์์๋ ๋ฐฐ์ด ์ฒซ๋ฒ์งธ ๊ฐ์ผ๋ก ์ค์
int answer = array[0];
for(int i = 1 ; i < array.length; i++) {
int minus = Math.abs(n - array[i]); // n - array[i] ์ ์ ๋๊ฐ
// ์ ๋๊ฐ์ด ๋ ์์ ๊ฒฝ์ฐ
if (minus < min) {
min = minus; // ๋ ์์ ์ฐจ์ด๋ก ๊ฐฑ์
answer = array[i]; // ํด๋น ๊ฐ ๋ณ์์ ๋ฃ๊ธฐ
} else if (minus == min ){ // ์ฐจ์ด ๊ฐ์ผ๋ฉด ๋ ์์ ๊ฐ ์ ํ
answer = Math.min(answer, array[i]);
}
}
return answer;
}
}
๐๐ป 4. ์ข์์ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ฝ๋
๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๊น๋ํ ์ฝ๋
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
Arrays.sort(array);
for(int i = 1 ; i < array.length ; i++){
if(Math.abs(n-array[0]) > Math.abs(n-array[i])){
array[0] = array[i];
}
}
answer = array[0];
return answer;
}
}
์คํธ๋ฆผ ์ฅ์ธ
import java.util.Arrays;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] array, int n) {
return Math.min(array[Arrays.stream(array).map(operand -> Math.abs(n - operand)).boxed().collect(Collectors.toList()).indexOf(Arrays.stream(array).map(operand -> Math.abs(n - operand)).min().orElse(0))], array[Arrays.stream(array).map(operand -> Math.abs(n - operand)).boxed().collect(Collectors.toList()).lastIndexOf(Arrays.stream(array).map(operand -> Math.abs(n - operand)).min().orElse(0))]);
}
}
'Algorithm > JAVAํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ ๋ฌธ์ ํ์ด (2) | 2025.04.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) 369๊ฒ์ ๋ฌธ์ ํ์ด (15) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ผ๊ฐํ์ ์์ฑ์กฐ๊ฑด(1) ๋ฌธ์ ํ์ด (4) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ ๋ฌธ์ ํ์ด (2) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋ฐฐ์ด ์์์ ๊ธธ์ด ๋ฌธ์ ํ์ด (8) | 2025.03.30 |
๐ 1. ๋ฌธ์ ์ค๋ช

๐ก 2. ํ์ด๊ณผ์
n๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฅผ ๊ตฌํ๋ ค๋ฉด n์์ ํด๋น ์์๋ฅผ ๋บ ๊ฐ์ด ์ ์ผ ์์์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
์ฆ n - array[i]
์ ์ ๋๊ฐ์ด 0์ด๊ฑฐ๋ ๊ฐ์ฅ ์์ ๊ฒ์ ๊ตฌํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ค.
์ฒ์์๋ n - array[i] ์ด ํ์ฌ min ์ ์ ์ฅ๋ ์ต์๊ฐ๋ณด๋ค ์์ผ๋ฉด
์ต์๊ฐ์ min์, ํด๋น ์์์ ๋ฐฐ์ด index๋ฅผ answer ๋ณ์์ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค.
ํ์ง๋ง ์ฝ๋๊ฐ ์์๋๋ก ๋์๊ฐ์ง ์์๋ค.
import java.util.Arrays; class Solution { public int solution(int[] array, int n) { int min = Math.abs(n - array[0]); int answer = 0; for(int i = 1 ; i < array.length; i++) { if (Math.abs(n - array[i]) < min ); { Math.abs(n - array[i]); answer = i; } } return answer; } }

๋ด๊ฐ ์ด ์ฝ๋๋ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ์ธ๋ฑ์ค(answer)๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ํ๋ฆฐ ๊ฒ ๊ฐ๋ค.
return answer
์ return array[answer]
๋ก ๋ณํํ๊ณ ํ
์คํธ ์ฝ๋๋ฅผ ๋๋ฆฌ๋๊น ํต๊ณผ

๊ทผ๋ฐ ๋ต์ ์ ์ถ ํ๋๊น ๋ค๋ฅธ ํ ์คํธ ์ผ์ด์ค์์ ๋ค ํ๋ฆผ..
์ ํ๋ 27.8๋ก ํ๋ ธ๋ค๊ณ ํจ... ๋๋ค..

๐จโ๐ป 3. ์ ๋ต์ฝ๋
๋ฌธ์ ์ ํ์ฌํญ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ ๋ ์์ ์๋ฅผ return ํ๋ผ๋ ์กฐ๊ฑด์ด ์์๋ค.
์ฐจ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๋ ์์ ๊ฐ์ ์ ํํ๋๋ก ํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ ํด๊ฒฐํ๋ค.
import java.util.Arrays; class Solution { public int solution(int[] array, int n) { // n๊ณผ ๋ฐฐ์ด ์ฒซ๋ฒ์งธ ์์์ ์ฐจ์ด์ ์ ๋๊ฐ์ผ๋ก ์ค์ int min = Math.abs(n - array[0]); // ์ฒ์์๋ ๋ฐฐ์ด ์ฒซ๋ฒ์งธ ๊ฐ์ผ๋ก ์ค์ int answer = array[0]; for(int i = 1 ; i < array.length; i++) { int minus = Math.abs(n - array[i]); // n - array[i] ์ ์ ๋๊ฐ // ์ ๋๊ฐ์ด ๋ ์์ ๊ฒฝ์ฐ if (minus < min) { min = minus; // ๋ ์์ ์ฐจ์ด๋ก ๊ฐฑ์ answer = array[i]; // ํด๋น ๊ฐ ๋ณ์์ ๋ฃ๊ธฐ } else if (minus == min ){ // ์ฐจ์ด ๊ฐ์ผ๋ฉด ๋ ์์ ๊ฐ ์ ํ answer = Math.min(answer, array[i]); } } return answer; } }
๐๐ป 4. ์ข์์ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ฝ๋
๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๊น๋ํ ์ฝ๋
import java.util.*; class Solution { public int solution(int[] array, int n) { int answer = 0; Arrays.sort(array); for(int i = 1 ; i < array.length ; i++){ if(Math.abs(n-array[0]) > Math.abs(n-array[i])){ array[0] = array[i]; } } answer = array[0]; return answer; } }
์คํธ๋ฆผ ์ฅ์ธ
import java.util.Arrays; import java.util.stream.Collectors; class Solution { public int solution(int[] array, int n) { return Math.min(array[Arrays.stream(array).map(operand -> Math.abs(n - operand)).boxed().collect(Collectors.toList()).indexOf(Arrays.stream(array).map(operand -> Math.abs(n - operand)).min().orElse(0))], array[Arrays.stream(array).map(operand -> Math.abs(n - operand)).boxed().collect(Collectors.toList()).lastIndexOf(Arrays.stream(array).map(operand -> Math.abs(n - operand)).min().orElse(0))]); } }
'Algorithm > JAVAํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ ๋ฌธ์ ํ์ด (2) | 2025.04.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) 369๊ฒ์ ๋ฌธ์ ํ์ด (15) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ผ๊ฐํ์ ์์ฑ์กฐ๊ฑด(1) ๋ฌธ์ ํ์ด (4) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ ๋ฌธ์ ํ์ด (2) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋ฐฐ์ด ์์์ ๊ธธ์ด ๋ฌธ์ ํ์ด (8) | 2025.03.30 |