전체 글 115

[C++] 백준 1920 : 수 찾기

백준 1920 : 수 찾기 문제 링크: 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개의 수들이 주어지는데, 이 수들이 A안�� www.acmicpc.net 문제 내용: (요약) N개의 정수가 있을 때, M개의 수들이 주어지는데, 이 수들이 N개의 정수 안에 존재하는 지를 출력하시오. Idea: 좀 더 빠르게 목표 숫자를 찾기 위해 이분 탐색을 사용하였다. 배열 A를 정렬해준다.(stl : algorithm의 sort 사용) 이분 탐색을 통해 해당 숫자가 있는지를 검사..

백준 Baekjoon 2020.08.06

[JAVA] 백준 1822 : 차집합

백준 1822 : 차집합 문제 링크 https://www.acmicpc.net/problem/1822 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1≤n(A), n(B)≤500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소가 www.acmicpc.net 문제 내용 (요약) 몇 개의 자연수로 이루어진 두 집합 A와 B가 있다. 집합 A에는 속하면서 집합 B에는 속하지 않는 모든 원소를 구하는 프로그램을 작성하시오. Idea 집합의 기능을 가지면서 순서대로 정렬해주는 TreeSet을 이용한다. A집합의 원소를 삽입해두고 새로 받는 B집합의 원소와 비교하며 같은 원소이면 삭제한다. A...

백준 Baekjoon 2020.08.02

[C언어] 백준 2577 : 숫자의 개수

백준 2577 : 숫자의 개수 문제 링크: https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제 내용: 세 개의 자연수 A, B, C가 주어질 때 A*B*C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. Idea: mod 10을 통해 일의 자리 숫자부터 계산해주고, 10으로 나눠준다. 이를 반복해준다. ※ mod 10 을 통해 해당 배열 인덱스에 접근할 수 있기 때문 Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17..

백준 Baekjoon 2020.07.30

[C언어] 백준 2798 : 블랙잭

백준 2798 : 블랙잭 문제 링크 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 �� www.acmicpc.net 문제 내용 (요약) N개의 카드 중 3개를 조합하여 M에 가장 가까운 숫자를 찾는 프로그램을 만들자.(단, M이상을 넘기면 안 된다.) Idea 순서에 상관없이 중복되지 않도록 카드 중 3개를 뽑는다. 카드가 N 개라면 경우의 수는 N * (N -1) * (N-2)이다. for문의 범위를 적절히 조절하도록 하자. Code 1 2 3 4 5 6 7 8 9 10 11 ..

백준 Baekjoon 2020.07.30

[C언어] 백준 1475 : 방 번호

백준 1475 : 방 번호 문제 링크 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 문제 내용 (요약) 플라스틱 숫자 0~9를 한 세트로 판매한다. 방 번호가 주어졌을 때, 필요한 세트 개수의 최솟값을 출력하시오.(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) Idea 둘 중 높은 수가 최소 세트 개수 int (6과 9가 나온 개수+1) / 2 그 외 숫자들 중 가장 많이 나온 숫자의 출현 횟수 Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2..

백준 Baekjoon 2020.07.27

[C언어] 백준 1912 : 연속합

백준 1912 : 연속합 문제 링크 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 내용 (요약) n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 이때 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하자. Idea 최대 부분합을 구하기 위해 첫 번째 인덱스부터 늘려가며 비교한다. 두 개의 변수(part_sum, result)를 사용하여 최대 합을 구한다. part..

백준 Baekjoon 2020.07.27

[자료구조] 트리 Tree

트리 Tree 트리의 개념과 특징 DAG(Directed Acyclic Graphs) 방향성 있는 비순환 그래프 loop x, circuit x 노드(node 혹은 vertex)와 링크(link 혹은 edge)의 집합 트리에서 한 노드에서 다른 노드로 가는 경로(path)는 유일하다. N개의 노드를 가지는 나무는 N-1개의 링크를 가진다. 종류 : 이진트리(binary tree), B 트리, 힙(heap), 세그먼트(segment) 등등 트리의 기본 구조 루트 Root : 트리의 제일 위에 있는 노드 경로 Path : 트리 내에서 연결된 노드를 통해 이동할 때의 이동 경로(path는 오직 하나) 자식 노드 children, 부모 노드 parent : 직접 연결되어 있으면서 아래에 있다면 자식, 위에 있다..

[C언어] 백준 10773 : 제로

백준 10773 : 제로 문제 링크 https://www.acmicpc.net/problem/10773 10773번: 제로 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 �� www.acmicpc.net 문제 내용 (요약) 0에서 1,000,000 사이의 값을 입력받다가 정수가 "0"일 경우 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 최종적으로 남은 수의 합을 구한다. Idea 0을 입력받은 경우 가장 최근의 수를 지워야 하므로 LIFO 형식이다. 이는 스택을 활용하면 쉽게 구현이 가능하다. 0을 입력받으면 pop 그 외 숫자 push Code 1 2 3..

백준 Baekjoon 2020.07.27

[JAVA] 오버로딩과 오버라이딩

오버로딩 Overloading과 오버라이딩 Overriding : 오버로딩과 오버라이딩은 자바에서 다형성을 이루는 방법들이다. 오버로딩 Overloading 한 클래스나 상속 관계에 있는 클래스들에 메소드의 이름은 같지만, 매개변수 타입이나 개수, 리턴 타입을 다르게 하여 메소드를 작성하는 방법. *변수명이 다르더라도 매개변수의 타입과 개수가 같다면 같은 메소드로 취급하기 때문에 오류가 난다. - 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Book { void info(String title) { System.out.println("책 제목 : "+title+"\t저자 : 작가미상"); } void info(String title, String aut..