본문 바로가기

백준(C언어)/23년 1월23

기하 1 - 4153번 1월 30일(월) - 기하 1 (4153번)..... 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 1. 입력받은 3개의 수 중에서 가장 큰 수를 구하는 함수 - 그리고 피타고라스 계산이 성립하는지를 계산하는 함수 이렇게 2가지의 함수로 나누어서 풀이의 방향을 처음에는 생각했으나, max 제외한 2개의 값 설정이 애매해졌다 -> 결국 calculate_result 라는 하나의 함수 안에서 max 값을 찾고, 피타고라스 계산도 동.. 2023. 1. 30.
기하 1 - 3009번 1월 30일(월) - 기하1 (3009번)....... 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 x ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #include int find_different_point(int first, int second, int third) { if (first == second) { return t.. 2023. 1. 30.
기하 1 - 1085번 1월 30일(월) - 기하 1 (1085번)..... 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 x ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #include #define MIN(x, y) (x) < (y) ? (x) : .. 2023. 1. 30.
집합과 맵 - 10816번 1월 27일(금) - 집합과 맵(10816번) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 25일 다 풀지 못했던 부분에서 이어서 진행 https://jh4995.tistory.com/116 (풀이진행중)집합과 맵 - 10816번 1월 25일(수) - 집합과 맵 (10816번) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,00.. 2023. 1. 27.
집합과 맵 - 1269번 1월 27일(금) - 집합과 맵 (1269번) 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 집합과 맵 주제의 풀이들과 유사하게, 풀이 진행을 계획 (입력 -> 퀵정렬 -> 이진탐색 -> 중복 숫자 개수 파악 -> 중복 숫자의 2배를 전체개수에서 빼며 출력) - A의 원소의 개수 n개는 a_number 에 입력받은 이후에 qsort (이후 이진탐색을 위해서) - B의 원소의 개수 m개는 b_n.. 2023. 1. 27.
집합과 맵 - 1764번 1월 26일(목) - 집합과 맵 (1764번) 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 14425번과 동일한 방식으로 풀이 진행을 계획 (입력 -> 퀵정렬 -> 이진탐색 -> 중복 문자열 개수 출력 -> 중복 문자열 출력) (https://jh4995.tistory.com/105) 집합과 맵 - 14425번 1월 19일(목) - 집합과 맵(14425번) 14425번: 문자열 집합 첫째 줄에 .. 2023. 1. 26.
(*풀이진행중)집합과 맵 - 10816번 1월 25일(수) - 집합과 맵 (10816번) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 10815번과 비교해서 중복되는 카드가 있는경우, +1만 해주면된다고 생각했다 - 하지만 key 값이 중복되는 경우 이진탐색을 진행하기 까다롭다는 것을 알게되고, 방향을 수정 - 탐색중에서 이진탐색이 아닌 이진탐색트리를 활용, 시간 단축을 위해서 그중에서 AVL 트리를 활용.. 2023. 1. 25.
1차원 배열 - 5597번 1월 24일(화) - 1차원배열(5597번) 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 x ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #include int main(void) { int n; int student_list[30] .. 2023. 1. 24.
1차원 배열 - 10807번 1월 23일(월) - 1차원 배열(10807번) 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 x ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #include int main(void) { int n; int list[100]; scanf.. 2023. 1. 23.