728x90
문제
https://www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
이진탐색 문제다.
코드
using System;
using System.Text;
using System.Collections.Generic;
namespace dongsik
{
class Algorithm
{
static void Main(string[] str)
{
int n = int.Parse(Console.ReadLine());
int[] nn = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
int m = int.Parse(Console.ReadLine());
int[] mm = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
Array.Sort(nn);
StringBuilder sb = new StringBuilder();
for(int i = 0; i < m; i++)
{
int result = Binary(nn, mm[i], 0, nn.Length-1);
sb.AppendLine(result.ToString());
}
Console.WriteLine(sb);
}
static int Binary(int[] arr, int target, int start, int end)
{
int mid;
while(start <= end)
{
mid = (start + end) / 2;
// 타겟을 찾으면
if(target == arr[mid])
{
return 1;
}
else if(arr[mid] < target)
{
start = mid + 1;
}
else
{
end = mid - 1;
}
}
return 0;
}
}
}
고민
문제를 제대로 안읽어서.. 요리조리 요리킹됐다.
'동식이 취업시키기 작전 > 코딩테스트' 카테고리의 다른 글
[백준] 1654 랜선 자르기(C#) (1) | 2024.02.02 |
---|---|
[백준] 2805 나무 자르기(C#) (0) | 2024.02.01 |
[백준] 2309번 일곱 난쟁이 (1) | 2024.01.30 |
[백준] 1436 영화감독 숌(C#) (1) | 2024.01.29 |
[백준] 1018 체스판 다시 칠하기(C#) (1) | 2024.01.29 |