๋ํ๋ฏผ๊ตญ์ ๋น๋กฏํ ๋๋ถ๋ถ์ ๋๋ผ์์๋ ํฐ๋ ๋ด์์์ ์ฐจ์ ๋ณ๊ฒฝ์ ๋ฒ๋ฅ ๋ก ๊ธํ๊ณ ์๋ค. ์กฐ๊ธ๋ง ๊ด์ฐฐ๋ ฅ์ด ์๋ ํ์์ด๋ผ๋ฉด ํฐ๋ ๋ด๋ถ์์๋ ์ฐจ์ ์ด ํ์ ์ด ์๋ ์ค์ ์ผ๋ก ๋์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์์ ๊ฒ์ด๋ค. ์ด๋ ์ฐจ์ ์ ๋ณ๊ฒฝํ ์ ์์์ ๋งํ๋ ๊ฒ์ด๊ณ , ๋ฐ๋ผ์ ํฐ๋ ๋ด๋ถ์์์ ์ถ์์ ๋ถ๊ฐ๋ฅํ๋ค.
์๋ฌธ๋ ๋ช ์ฝค๋น ๊ฒฝ์ฐฐ ๋๊ทผ์ด์ ์์์ด๊ฐ ์ถ์ํ๋ ์ฐจ๋์ ์ก๊ธฐ ์ํด ํ ํฐ๋์ ํฌ์ ๋์๋ค. ๋๊ทผ์ด๋ ํฐ๋์ ์ ๊ตฌ์, ์์์ด๋ ํฐ๋์ ์ถ๊ตฌ์ ๊ฐ๊ฐ ์ ๋ณตํ๊ณ , ๋๊ทผ์ด๋ ์ฐจ๊ฐ ํฐ๋์ ๋ค์ด๊ฐ๋ ์์๋๋ก, ์์์ด๋ ์ฐจ๊ฐ ํฐ๋์์ ๋์ค๋ ์์๋๋ก ๊ฐ๊ฐ ์ฐจ๋ ๋ฒํธ๋ฅผ ์ ์ด ๋์๋ค.
N๊ฐ์ ์ฐจ๋์ด ์ง๋๊ฐ ํ, ๋๊ทผ์ด์ ์์์ด๋ ์์ ๋ค์ด ์ ์ด ๋ ์ฐจ๋ ๋ฒํธ์ ๋ชฉ๋ก์ ๋ณด๊ณ , ํฐ๋ ๋ด๋ถ์์ ๋ฐ๋์ ์ถ์์ ํ์ ๊ฒ์ผ๋ก ์ฌ๊ฒจ์ง๋ ์ฐจ๋ค์ด ๋ช ๋ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ๋๊ทผ์ด์ ์์์ด๋ฅผ ๋์ ์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ ๋ ฅ
์ ๋ ฅ์ ์ด 2N+1๊ฐ์ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฒซ ์ค์๋ ์ฐจ์ ๋์ N(1 โค N โค 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋๊ทผ์ด๊ฐ ์ ์ ์ฐจ๋ ๋ฒํธ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๊ณ , N+2์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์์์ด๊ฐ ์ ์ ์ฐจ๋ ๋ฒํธ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๋ค. ๊ฐ ์ฐจ๋ ๋ฒํธ๋ 6๊ธ์ ์ด์ 8๊ธ์ ์ดํ์ ๋ฌธ์์ด๋ก, ์์ด ๋๋ฌธ์('A'-'Z')์ ์ซ์('0'-'9')๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.
๊ฐ์ ์ฐจ๋ ๋ฒํธ๊ฐ ๋ ๋ฒ ์ด์ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ํฐ๋ ๋ด๋ถ์์ ๋ฐ๋์ ์ถ์์ ํ์ ๊ฒ์ผ๋ก ์ฌ๊ฒจ์ง๋ ์ฐจ๊ฐ ๋ช ๋์ธ์ง ์ถ๋ ฅํ๋ค.
๐ก ์ฐจ(string)๋ฅผ ๋ค์ด์ค๋ ์์(integer)์ ํจ๊ป hashmap ์ ์ฅ
๐ก ๋๊ฐ๋ ์ฐจ๋ฅผ ์ด์ฉํ์ฌ ์์๋ฅผ hashmap์์ ๊บผ๋ด์ ๋ฐฐ์ด์ ์ฐจ๋ก๋ก ์ ์ฅํจ
๐ก ๋ฐฐ์ด์์ ์๊ธฐ ์์ ์ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅผ ๋ดค์ ๋, ์์ ๋ณด๋ค ์์๊ฐ ๋น ๋ฅธ ๊ฒ์ด ์๋ค๋ฉด, count+1์ ํด์ค
HashMap<String, Integer> map = new LinkedHashMap<>();
...
for(int i=1; i<=n; i++) {
map.put(br.readLine().trim(), i);
}
for(int i=0; i<n; i++) {
out[i] = map.get(br.readLine().trim());
}
for(int i=0; i<n-1; i++) {
for(int j=i+1; j<n; j++) {
if(out[i] > out[j]) {
count++;
break;
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.LinkedHashMap;
public class Imple_11 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashMap<String, Integer> map = new LinkedHashMap<>();
int count = 0;
int n = Integer.parseInt(br.readLine());
int[] out = new int[n];
for(int i=1; i<=n; i++) {
map.put(br.readLine().trim(), i);
}
for(int i=0; i<n; i++) {
out[i] = map.get(br.readLine().trim());
}
for(int i=0; i<n-1; i++) {
for(int j=i+1; j<n; j++) {
if(out[i] > out[j]) {
count++;
break;
}
}
}
System.out.println(count);
}
}
์ฑ๊ณตโจ