본문 바로가기
728x90

○ 기술면접42

이진탐색: Hunt The Rabbit (백준 13777) ○ 문제 Farkle 씨는 농장에서 자랐고 어린 시절 토끼 사냥에 상당한 시간을 보냈습니다! 그는 현재 수학과 컴퓨팅을 가르치고 있으며 학생들이 이진 검색에 대해 배울 수 있도록 사냥 게임을 고안했습니다. 그는 방 앞에 1부터 50까지 번호가 매겨진 50개의 봉투를 놓았습니다. 그 봉투 안에는 토끼를 숨겼습니다. 물론 진짜는 아니지만 토끼 그림이 있는 카드였습니다! 그런 다음 그는 다른 모든 봉투에 카드를 넣어 토끼가 들고 있는 것보다 낮은 숫자가 있는 봉투를 선택하면 카드에 "더 높은 숫자를 시도하십시오"라고 표시하고, 그렇지 않으면 카드에 "낮은 숫자를 시도하십시오"라고 표시합니다. 학생들은 이진 검색을 사용하여 토끼를 찾아야 하고 검색하는 동안 개봉한 모든 봉투의 번호를 (순서대로) 적어야 합니다... 2023. 3. 24.
이진탐색: 숫자 카드 (백준 10815) ○ 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. ○ 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있.. 2023. 3. 24.
[알고리즘] 이진탐색: 범위를 반씩 좁혀가는 탐색 순차탐색(Sequential Search) 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례로 확인하는 방법 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용, 시간만 충분하다면 항상 답을 찾을 수 있다. 이진탐색: 반으로 쪼개면서 탐색하기(Binary Search) 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하기 때문에 정렬되어 있다면 배우 빠른 속도로 탐색 이진 탐색은 위치를 나타내는 변수 3개를 사용하는데 탐색하고자 하는 범위의 [시작점], [끝점], [중간점] 이다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 탐색 트리 자료구조 - 트리는 부모 노드와 자식 노드.. 2023. 3. 23.
정렬: 일곱 난쟁이 (백준 2309) ○ 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. ○ 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. ○ 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난.. 2023. 3. 23.
728x90