import java.io.FileInputStream;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
class Main{
public static int binarySearch(int[] arr, int target){
int l=0; int r = arr.length-1;
int len = 0;
while (l<=r){
int m = (l+r)/2;
if(arr[m]<=target){
l = m+1;
if(arr[m] == target) len++;
}
else if(arr[m]>=target)
{
r = m-1;
if(arr[m] == target) len++;
}
}
return len;
}
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n;i++){
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int m = sc.nextInt();
for(int i=0; i<m;i++){
int tmp = sc.nextInt();
System.out.print(binarySearch(arr,tmp)+" ");
}
sc.close();
}
}
์ค๋ต๋ ธํธ(ํธ๋ ๋์ ์ฌ๊ณ ๊ณผ์ ๋ฐ ๊ฐ์ ์ )
์๋ฌด ์๊ฐ ์์ด ๊ฐ ์ฐพ์์ ๊ฑฐ๊ธฐ์ for ๋ฌธ ๋๋ ค์ผ์ง ํ๋ ๋ฌด์ํ ๋ก์ง์ด๋ค. ๊ฒฝ๊ณ๊ฐ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฆฌ๊ธด ํ์ผ๋ ๊ตฌํํ๊ธฐ๊ฐ ๋๋ฌด ์ด๋ ค์ ๋ค. ์ด๋ฒ ํ์ด๋ ๋ช ๋ฒ ๋ฐ๋ณตํด๋ด์ผ๊ฒ ๋ค.
์ ๋ต์ฝ๋
import java.io.FileInputStream;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
class Main{
public static int lowerBound(int[] arr, int target){
int l=0; int r = arr.length;
while (l<r){
int m = (l+r)/2;
if(arr[m]>=target){
r = m;
} else{ // ์ฐพ์์
l = m+1;
}
}
return l;
}
public static int upperBound(int[] arr, int target){
int l=0; int r = arr.length;
while (l<r){
int m = (l+r)/2;
if(arr[m]>target){
r = m;
} else{ // ์ฐพ์์
l = m+1;
}
}
return l;
}
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n;i++){
arr[i] = sc.nextInt();
}
StringBuilder sb = new StringBuilder();
Arrays.sort(arr);
int m = sc.nextInt();
for(int i=0; i<m;i++){
int tmp = sc.nextInt();
sb.append(upperBound(arr,tmp)-lowerBound(arr,tmp)).append(" ");
}
System.out.println(sb);
sc.close();
}
}
๊ณต๋ถํ๋ฉด์ ์ ์ ํ๊ธฐ๋ฅผ ์ฒจ๋ถํ๊ฒ ๋ค.
์ํ, ํํ ๊ฒฝ๊ณ์ ์ ์ฌ์ฉํ๋ ์ด๋ฒ ํ์ด์์๋ r = arr.length-1์ ํด๋ฒ๋ฆฌ๋ฉด, l์ ๊ธฐ์ค์ผ๋ก ์์ง์ด๋ ๋ฐ๋ณต๋ฌธ์ด ๋ฌดํ๋ฃจํ์ ๋น ์ง๊ฒ ๋๋ ์ฌ๊ณ ๊ฐ ๋ฐ์ํ๋ค.
์ฌ๋ด์ผ๋ก StringBuilder๋ฅผ ์์ฐ๊ณ ๊ทธ๋ฅ ์ถ๋ ฅํ๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค. ์๊ฐ ๋ณต์ก๋ ํจ์จ์ฑ ์ฆ๊ฐ๋ฅผ ์ํด ๋ญ ์ถ๋ ฅํ ๋๋ ํญ์ StringBuilder๋ฅผ ์ฌ์ฉํ๋ ์ต๊ด์ ๊ฐ์.
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์! ๋ก๊ทธ์ธ ์ํด๋ ๋ฉ๋๋ค ^_^
๋ฐ์ํ
'OJ๐ผ > ์ค๋ต๋ ธํธ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][JAVA] 1158 : ์์ธํธ์ค ๋ฌธ์ (0) | 2024.01.11 |
---|---|
[BOJ][JAVA] 10814: ๋์ด์ ์ ๋ ฌ (0) | 2024.01.09 |
[BOJ][JAVA] 2295: ์ธ ์ ์ฐพ๊ธฐ (0) | 2024.01.07 |
[BOJ][JAVA] 1920: ์ ์ฐพ๊ธฐ (0) | 2024.01.07 |
[BOJ][JAVA] 3085: ์ฌํ ๊ฒ์ (0) | 2024.01.06 |