๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1015_์ˆ˜์—ด ์ •๋ ฌ

๋ฟŒ์•ผ._. 2023. 10. 19. 11:38

Silver IV

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/1015)

< ์ˆ˜์—ด ์ •๋ ฌ >

 

๋ฌธ์ œ ํ’€์ด 

 

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ˆ˜์—ด P๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด A์˜ ์›์†Œ ์ค‘์—์„œ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ž‘์€ ๊ฐ’์„ ์ฃผ๋ฉด ๋œ๋‹ค.

 

๋ฌธ์ œ ์˜ˆ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ฒƒ์œผ๋กœ ์„ค๋ช…ํ•ด ๋ณด๋ฉด

 

A [2,3,1]

P [1,2,0]

 

-> B [1]=2, B [2]=3, B [0]=1๋กœ B [1,2,3]์ด ์™„์„ฑ๋œ๋‹ค.

 

 my solution (Java)

import java.io.*;
import java.util.*;

public class _1015_ { // ์ˆ˜์—ด ์ •๋ ฌ

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int n = Integer.parseInt(bf.readLine());

		st = new StringTokenizer(bf.readLine());

		PriorityQueue<int[]> queue = new PriorityQueue<>(new Comparator<int[]>() {

			@Override
			public int compare(int[] o1, int[] o2) {
				if (o1[0] == o2[0])
					return o1[1] - o2[1];
				return o1[0] - o2[0];
			}
		});

		for (int i = 0; i < n; i++) {
			queue.add(new int[] { Integer.parseInt(st.nextToken()), i });
		}

		int[] result = new int[n];
		int idx = 0;

		while (!queue.isEmpty()) {
			int temp[] = queue.poll();
			result[temp[1]] = idx++;
		}

		for (int i = 0; i < n; i++) {
			bw.write(result[i] + " ");
		}
		bw.flush();
	}
}

 

Main

๋ณ€์ˆ˜)
n : ๋ฐฐ์—ด A ํฌ๊ธฐ
queue : [๋ฐฐ์—ด A ๊ฐ’, index]๋ฅผ ์ €์žฅํ•˜๋ฉฐ ๋ฐฐ์—ด A ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ, ๋ฐฐ์—ด A ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด index ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
result : ์ˆ˜์—ด P
idx : ์ˆ˜์—ด P ๊ฐ’ 

 

- ๋ฐฐ์—ด A ํฌ๊ธฐ(n) ์ž…๋ ฅ

- ๋ฐฐ์—ด A์˜ ์›์†Œ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์šฐ์„ ์ˆœ์œ„ ํ์— ์ €์žฅ

- ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

: ์›์†Œ๋ฅผ ๋ฝ‘์•„ index ์œ„์น˜์— 0๋ถ€ํ„ฐ ์ €์žฅ

- ์ˆ˜์—ด P ์ถœ๋ ฅ



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 1058_์นœ๊ตฌ  (1) 2023.10.23
[Baekjoon] 1956_์šด๋™  (0) 2023.10.20
[Baekjoon] 20044_Project Teams  (0) 2023.10.18
[Baekjoon] 2548_๋Œ€ํ‘œ ์ž์—ฐ์ˆ˜  (0) 2023.10.17
[Baekjoon] 1946_์‹ ์ž… ์‚ฌ์›  (1) 2023.10.16