2023. 10. 11. 13:59ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1215
-> ์ด์ ๋ฌธ์ ํ์ด
8. ๋ฑ์ ๊ตฌํ๊ธฐ
์ค๋ช
N๋ช ์ ํ์์ ๊ตญ์ด์ ์๊ฐ ์ ๋ ฅ๋๋ฉด ๊ฐ ํ์์ ๋ฑ์๋ฅผ ์ ๋ ฅ๋ ์์๋๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๊ฐ์ ์ ์๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ ๋์ ๋ฑ์๋ก ๋์ผ ์ฒ๋ฆฌํ๋ค.
์ฆ ๊ฐ์ฅ ๋์ ์ ์๊ฐ 92์ ์ธ๋ฐ 92์ ์ด 3๋ช ์กด์ฌํ๋ฉด 1๋ฑ์ด 3๋ช ์ด๊ณ ๊ทธ ๋ค์ ํ์์ 4๋ฑ์ด ๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ N(3<=N<=100)์ด ์ ๋ ฅ๋๊ณ , ๋ ๋ฒ์งธ ์ค์ ๊ตญ์ด์ ์๋ฅผ ์๋ฏธํ๋ N๊ฐ์ ์ ์๊ฐ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
์ ๋ ฅ๋ ์์๋๋ก ๋ฑ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
5
87 89 92 100 76
์์ ์ถ๋ ฅ 1
4 3 2 1 5
๋ฌธ์ ํ์ด 1
public int[] solution(int n, int[] scores) {
int[] answer = new int[n];
int[] tmp = Arrays.copyOf(scores, n);
Arrays.sort(tmp);
for (int i = 0; i < n; i++) {
for (int j = n-1; j >= 0; j--) {
if (scores[i] == tmp[j]) {
answer[i] = n - j;
break;
}
}
}
return answer;
}
๐ฉ๐ป๐ป : ๋ฑ์ ๊ตฌํ ๋ ๋๋ Arrays.sort ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์ ๋ ฌ๋ ๋ฐฐ์ด ํ๋๋ฅผ ๋ ๋ง๋ค์๋ค.
๊ทธ ํ, ์ด์ค for ๋ฌธ์ ๋๋ฉด์ ์ ๋ ฌ๋ ๋ฐฐ์ด tmp์ socres์ ์ ์๊ฐ ๊ฐ์ผ๋ฉด ํด๋น ๋ฐฐ์ด์ ์์น๋ฅผ ๊ตฌํด์ answer[i] ์ ๋ด์์คฌ๋ค.
๋ฌธ์ ํ์ด 2
public int[] solution2(int n, int[] scores) {
int[] answer = new int[n];
for (int i = 0; i < n; i++) {
int cnt = 1;
for (int j = 0; j < n; j++) {
if (scores[j] > scores[i]) cnt++;
}
answer[i] = cnt;
}
return answer;
}
๐พ : ๊ฐ์ฌ๋์ for๋ฌธ์ ๋ ๋ฒ ๋๋ฉด์ score ๊ฐ ํ๋๋ฅผ ๋๋ฒ์งธ for ๋ฌธ ๋๋ฉด์ ๋ชจ๋ ์ ์์ ๋น๊ตํ๊ณ ๊ทธ ๊ฐ๋ณด๋ค ์์ ๊ฒฝ์ฐ cnt์ +1๋ฅผ ํด์คฌ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ answer ๋ฐฐ์ด์ ๋ฃ์ด์คฌ๋ค. ์ด๋ ๊ฒ ํ๋ฉด 87 89 92 92 100 ์ด๋ฐ ์์ ์์๋ 5, 4, 2, 2, 1 ์ด๋ฐ์์ผ๋ก ๊ฐ์ 3๋ฑ์ด ์๋ 4๋ฑ์ผ๋ก ๋์ด๊ฐ๋ค,