์ฒด๊ฐ Level : โ
โ
โ Review: ์กฐ๊ฑด ์ก๋๊ฒ ์๊ฐ๋ณด๋ค ๋ณต์กํ๋ ๋ฌธ์ |
๐ก ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, array์ ๋ค์ด์๋ ์ ์ ์ค n๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฅผ returnํ๋ค.
1) ์ ๋ ฅ ๋ฐฐ์ด์ ์๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ค์ด์ค๋๊ฒ ์๋๊ธฐ ๋๋ฌธ์, ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์งํํด์ค๋ค.
2) n ๋ณด๋ค ๊ฐ๊ฑฐ๋ ์์ ๊ฐ๊น์ด์์ n ๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฐ ๊ฐ๊น์ด์ ๋ฅผ ์ฐพ์์ค๋ค.
3) ๋์ค ํ๋๊ฐ 0 ์ด๋ผ๋ฉด => ๋น๊ตํ ์ด์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ 0์ด ์๋ max ๋ min ์ ๋ฆฌํดํด์ฃผ๊ณ
4) ๋๋ค ๊ฐ์ด ๋ค์ด์๋ค๋ฉด => max , min ๊ฐ ์ค n ๊ณผ ๊ฐ๊น์ด ๊ฐ์ ์ฐพ์์ค๋ค.
[์ฑ๊ณต]
(+) ํ ์คํธ 3๋ฒ ์คํจ :: if (array[i] <= n) ๊ฐ๋ค๋ ์กฐ๊ฑด์ ๋ฃ์ด์ฃผ๋ ๋ง์๋ค!
import java.lang.Math;
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int min =0, max=0;
Arrays.sort(array); // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
for (int i =0 ; i < array.length; i++){
if (array[i] <= n){ // n๋ณด๋ค ์ ์ผ ์์ ๊ฐ๊น์ด์ 1๊ฐ
min = array[i];
}else if (array[i] >= n){ // n ๋ณด๋ค ํฐ ๊ฐ์ฅ ๊ฐ๊น์ด ์ 1๊ฐ
max = array[i];
break;
}
}
if ( max == 0 || min == 0){ // ๋น๊ตํ ๊ฐ์ด ์์ ๋
if ( min == 0){
answer = max;
}else {
answer = min;
}
}else { // ๋น๊ตํ ๊ฐ์ด ์์ ๋
if ( Math.abs(max - n) > Math.abs(n - min)){
answer = min;
}else if ( Math.abs(max - n) == Math.abs(n - min)){
answer = min;
}
else {
answer = max;
}
}
return answer;
}
}
[์คํจ] 3๋ฒ ์ผ์ด์ค ๋นผ๊ณ ๋ค ๋ง๋๋ค!
+) ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ถ๊ฐ
+) [2, 3, 4], 1 >> ๋ฐ๋ก ์ฝ๋ ์ถ๊ฐ
import java.lang.Math;
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int min =0, max=0;
Arrays.sort(array); // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
for (int i =0 ; i < array.length; i++){
if (array[i] < n){ // n๋ณด๋ค ์ ์ผ ์์ ๊ฐ๊น์ด์ 1๊ฐ
min = array[i];
}else if (array[i] > n){ // n ๋ณด๋ค ํฐ ๊ฐ์ฅ ๊ฐ๊น์ด ์ 1๊ฐ
max = array[i];
break;
}
}
if ( max == 0 || min == 0){ // ๋น๊ตํ ๊ฐ์ด ์์ ๋
if ( min == 0){
answer = max;
}else {
answer = min;
}
}else { // ๋น๊ตํ ๊ฐ์ด ์์ ๋
if ( Math.abs(max - n) > Math.abs(n - min)){
answer = min;
}else if ( Math.abs(max - n) == Math.abs(n - min)){
answer = min;
}
else {
answer = max;
}
}
return answer;
}
}
[์คํจ] ํ ์คํธ ์ผ์ด์ค๋ ๋ง์ง๋ง ์คํ๊ฒฐ๊ณผ์์ ์ ๋ถ ํ๋ฆฐ๋ค
import java.lang.Math;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int min =0, max=0;
for (int i =0 ; i < array.length; i++){
if (array[i] < n){ // n๋ณด๋ค ์ ์ผ ์์ ๊ฐ๊น์ด์ 1๊ฐ
min = array[i];
answer = min;
}else if (array[i] > n){ // n ๋ณด๋ค ํฐ ๊ฐ์ฅ ๊ฐ๊น์ด ์ 1๊ฐ
max = array[i];
break;
}
}
if ( Math.abs(max - n) > Math.abs(n - min)){ // ๋น๊ต
answer = min;
}else if ( Math.abs(max - n) == Math.abs(n - min)){ // ๊ฐ๊น์ด์๊ฐ ์ฌ๋ฌ๊ฐ๋ฉด ์์์
answer = min;
}
else {
answer = max;
}
return answer;
}
}
โญ ์ฝ๋ ์ฐธ๊ณ
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;
}
}