https://school.programmers.co.kr/learn/courses/30/lessons/120890
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
[ ๋ฌธ์ ์ค๋ช ]
์ ์ ๋ฐฐ์ด array์ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, array์ ๋ค์ด์๋ ์ ์ ์ค n๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
1 ≤ array์ ๊ธธ์ด ≤ 100
1 ≤ array์ ์์ ≤ 100
1 ≤ n ≤ 100
๊ฐ์ฅ ๊ฐ๊น์ด ์๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ ๋ ์์ ์๋ฅผ return ํฉ๋๋ค.
[ ํ์ด๊ณผ์ ]
1๋ฒ์๋ >
class Solution {
public int solution(int[] array, int n) {
int cha = 0; //array์์์ n์ ์ฐจ์ด๊ฐ์ ๋ด์ ๋ณ์
int min = Integer.MAX_VALUE; //cha์ ์ต์๊ฐ์ ๋ด์ ๋ณ์
int answer = 0; //์ต์ข
array์์๋ฅผ ๋ด์ ์ ๋ต ๋ณ์
for (int i=0; i<array.length; i++) { //array๋ฐฐ์ด ์ํํ๋ฉด์
cha = Math.abs(n-array[i]); //n๊ณผ ์์์์ ์ฐจ์ด๋ฅผ ์ ๋๊ฐ์ผ๋ก ๊ณ์ฐํด์ cha์ ๋ด๊ธฐ
if (cha < min) { //cha๊ฐ min๋ณด๋ค ์๋ค๋ฉด
min = cha; //min์ chaํ ๋น
answer = array[i]; //answer์ ํด๋น ์์ ํ ๋น
}
}
return answer;
}
}
๊ฐ์ฅ ๊ฐ๊น์ด ์๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ ๋ ์์ ์๋ฅผ return ํฉ๋๋ค. -> ์ด ์กฐ๊ฑด์ ์ถ๊ฐํ์ง ์์๋ค.
2๋ฒ์๋ >
class Solution {
public int solution(int[] array, int n) {
int cha = 0;
int min = Integer.MAX_VALUE;
int answer = 0;
for (int i=0; i<array.length; i++) {
cha = Math.abs(n-array[i]);
if (cha < min) {
min = cha;
answer = array[i];
}
else if (cha == min) { //๊ฐ์ฅ ๊ฐ๊น์ด ์๊ฐ ์ฌ๋ฌ๊ฐ์ผ๋๋
if (array[i] < answer) {
answer = array[i];
//ํ์ฌ answer์ ๋ด๊ฒจ์๋ ์์์ ๋น๊ตํด์
//๋ ์์ ๊ฐ์ answer์ ํ ๋น
}
}
}
return answer;
}
}
[ ๋ค๋ฅธํ์ด ]
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
Arrays.sort(array); //array๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
for(int i = 1 ; i < array.length ; i++){ //array๋ฐฐ์ด ์ธ๋ฑ์ค 1๋ถํฐ ์ํํ๋ฉด์
if(Math.abs(n-array[i]) < Math.abs(n-array[0])){
//0๋ฒ์ธ๋ฑ์ค ์์์ n์ ์ฐจ์ด๊ฐ๋ณด๋ค ์์ผ๋ฉด
array[0] = array[i];
//0๋ฒ์ธ๋ฑ์ค์ ํด๋น ์์ ํ ๋น
//์ฐจ์ด๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด์๊ธฐ๋๋ฌธ์
//๊ฒฐ๊ณผ์ ์ผ๋ก ๋ ์์ ์์๋ฅผ ํ ๋นํ ์ ์์
}
}
answer = array[0];
//์ ๋ต์ 0๋ฒ์ธ๋ฑ์ค๊ฐ ํ ๋น
return answer;
}
}
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
Arrays.sort(array); //๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
int min = Math.abs(array[0]-n);
//0๋ฒ์ธ๋ฑ์ค์ n์ ์ฐจ์ด์ ์ ๋๊ฐ์ ๋ณ์ min์ ๋ด๊ธฐ
int minIdx = 0; //์ธ๋ฑ์ค ๋ณ์ ์ ์ธ
for(int i=1; i<array.length; i++) //array๋ฐฐ์ด 1๋ฒ์ธ๋ฑ์ค๋ถํฐ ์ํํ๋ฉด์
if(Math.abs(array[i]-n) < min) { //์ฐจ์ด์ ์ ๋๊ฐ์ด min๋ณด๋ค ์์ผ๋ฉด
min = Math.abs(array[i]-n); //min ์
๋
minIdx = i; //ํด๋น ์ธ๋ฑ์ค minIdx์ ๋ด์์ฃผ๊ธฐ
}
return array[minIdx];
}
}'๐ฅ Coding Test > ์ค๋ต๋ ธํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ ๋ฌธ] ๊ณต ๋์ง๊ธฐ (0) | 2023.08.03 |
|---|---|
| [์ ๋ฌธ] ํ ๋ฒ๋ง ๋ฑ์ฅํ ๋ฌธ์ (0) | 2023.08.02 |
| [์ ๋ฌธ] ๋ชจ์ค๋ถํธ (1) (0) | 2023.08.02 |
| [๊ธฐ์ด] ๋ฌธ์์ด ์ฌ๋ฌ ๋ฒ ๋ค์ง๊ธฐ (0) | 2023.07.27 |
| [๊ธฐ์ด] ์์ด๊ณผ ๊ตฌ๊ฐ ์ฟผ๋ฆฌ 2 (0) | 2023.07.26 |