분류 전체보기 316

[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q5 답안 p.115

Q5. 우리가 살펴본 이진 검색 알고리즘 프로그램은 검색할 값과 같은 값을 갖는 요소가 하나 이상일 경우 그 요소 중에서 맨 앞의 요소를 찾지 못합니다. 예를 들어, 아래 그림의 배열에서 7을 검색하면 중앙에 위치하는 a[5]를 검색합니다. 맨 앞의 요소를 찾는 bin_search2 함수를 작성해보세요. int bin_search2(const int a[], int n, int key); 답안) #include #include int bin_search2(const int a[], int n, int key) { int j; int pl = 0; int pr = n-1; int pc; int chk = 1; do { pc = (pl + pr) / 2; if(a[pc] == key) chk = 0; els..

Algorithm/Do it 2019.10.16

[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q3 답안 p.115

Q3. 요소의 개수가 n인 배열 a에서 key와 일치하는 모든 요소의 인덱스를 배열 idx의 맨 앞부터 순서대로 저장하고, 일치한 요소의 개수를 반환하는 함수를 작성하세요. 예를 들어, 요소의 개수가 8인 배열 a의 요소가 {1, 8, 2, 8, 4, 6, 7, 9 } 이고 key가 9면 배열 idx에 {1, 3, 7 }을 저장하고 3을 반환합니다. int search_idx(const int a[], int n, int key, int idx[]); 답안) #include #include int search_idx(const int a[], int n, int key, int idx[]) { int i = 0; int j = 0; for(i; i

Algorithm/Do it 2019.10.16

단계별로 풀기 8단계 수학 1 - 부녀회장이 될테야(2775번 문제) Python3 답안

답안) test_case = int(input()) for i in range(test_case): k_floor = int(input()) n_room = int(input()) k_list = [] for k in range(k_floor): tmp_list = []; for n in range(1, n_room+1): if len(k_list) == 0: tmp_list.append(n) else: tmp_list.append(sum(k_list[:n])) k_list = tmp_list print(sum(k_list[:n_room+1])) 문제) https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그..

Algorithm/Baekjoon 2019.10.14

단계별로 풀기 8단계 수학 1 - 달팽이는 올라가고 싶다(2869번 문제) Python3 답안

답안) import math a, b, v = map(int, input().split(" ")) print(int((v-b-1)/(a-b))+1) 문제) https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 ..

Algorithm/Baekjoon 2019.10.12

단계별로 풀기 8단계 수학 1 - 벌집(2292번 문제) Python3 답안

답안) number= int(input()) room_num = 1 room_cnt = 1 while True: if room_num < number: room_num += (6 * room_cnt) room_cnt += 1 else: break print(room_cnt) 문제) https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. ..

Algorithm/Baekjoon 2019.10.12
반응형