์ฝ๋ฉ์ ํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๋ ๊ตณ์ด ์ด์งํ์์ผ๋ก ๋ถ๋ฅํด ๋์ ์ด์ ๊ฐ ๊ถ๊ธํ๋ค. ์ด ๋ฌธ์ ๋ ๊ตฌํ์ ๋๋์ด ์ข ๊ฐํ๊ณ , ๋ค์ํ ํ์ด๋ฒ์ด ์๋ค.
์ด ๋ฌธ์ ์ ํต์ฌ์ ์์์ ์ฒ๋ฆฌ์ด๋ค. ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์์ ๋ง์์ฌ๋ ์์ํ์์ ๋ง์ ๋ถ๋ค์ ์ฝ๋๋ฅผ๋ณด๋ ๊ทธ ๋ถ๋ถ์ ์ ๋ง ๋ค์ํ๊ฒ ์ฒ๋ฆฌ๊ฐ ๋์๋ค.
๋ณธ ๋ฌธ์ ๋ ์๊ฐ ๋ณต์ก๋๊ฐ ๋์ ํธ์ด๋ค. 50๋ง๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ํํ๋ฉฐ ๊ฐ์๋ฅผ ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋น์ฐํ O(1)์ธ ๋ฐฐ์ด์ ์ฌ์ฉ์ด ๊ฐ์ฅ๋จผ์ ๋ ์ฌ๋๋ค.
https://www.acmicpc.net/problem/10816
10816๋ฒ: ์ซ์ ์นด๋ 2
์ฒซ์งธ ์ค์ ์๊ทผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์ซ์ ์นด๋์ ์ ํ์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ซ์ ์นด๋์ ์ ํ์๋ ์๋ -10,000,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,
www.acmicpc.net
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static int N,M;
static int[] A;
static int[] countPlus = new int[10000001];
static int[] countMinus = new int[10000001];
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
N = Integer.parseInt(br.readLine());
A = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
A[i] = Integer.parseInt(st.nextToken());
if(A[i]<0) {
countMinus[A[i]*(-1)]++;
}
else {
countPlus[A[i]]++;
}
}
M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for(int i=0; i<M; i++) {
int seek = Integer.parseInt(st.nextToken());
if(seek<0)sb.append(countMinus[seek*(-1)]+" ");
else sb.append(countPlus[seek]+" ");
}
bw.write(sb.toString());
bw.flush();
}
}
๋ด ์ฝ๋๋ ์ง๊ธ ๋น์ฅ ์ผ๋ง๋ ์ง ๋ค๋ฌ์ ์ ์์ง๋ง ๊ณ์ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํ์๊ณผ ๋์์ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ด๋ฏ๋ก ๋จ๊ฒจ๋์. ๊ทธ ์ด์ ๋ ํ์ ๋ด ๋ถ์กฑํ๋ ๋ถ๋ถ์ ๋ณด๋ฉด ์ฑ์ฅ์ ๋๋์ด ๋ง์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๊พธ์คํจ์ ์ฌ์๋ณด์ด์ง๋ง ๊ฐ์ฅ ์ด๋ ต๊ณ ๋๊ตฌ๋ ๊พธ์คํจ์ ์ด๊ธธ ์ ์๋ค.
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํฐ ์์ ๋ง์ (0) | 2021.06.09 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] DFS, BFS์ ๊ตฌํ (0) | 2020.10.13 |
1051๋ฒ: ์ซ์ ์ ์ฌ๊ฐํ (0) | 2020.08.05 |
๋ฐฑ์ค 1012 ์ ๊ธฐ๋ ๋ฐฐ์ถ (์๋ฐ) (0) | 2020.07.27 |
๋ฐฑ์ค์จ๋ผ์ธ์ ์ง 2759 ๊ณ๋จ ์ค๋ฅด๊ธฐ ์๋ฐํ์ด (0) | 2020.07.12 |