본문 바로가기

전체 글376

[백준] 1269번 : 대칭 차집합 – JAVA [자바] https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 문제 풀이 백준 1269번 대칭 차집합은 실버 3 난이도의 맵 문제였다. 이 문제에서는 2개의 집합 A, B가 주어진다. 그리고 A-B와 B-A 사이즈의 합을 더하면 된다. 이 문제는 HashMap과 ArrayList를 이용해서 풀겠다. 우선 입력받는 수들을 HashMap에 추가한다. HashMap은 로 선언하고 값은 딱히 필요 없어서 0으로 추가한다. 그리고 입력받는 수들도 Array.. 2022. 4. 26.
[백준] 14425번 : 문자열 집합 – JAVA [자바] https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 문제 풀이 백준 14425번 문자열 집합은 실버 3 난이도의 문자열 및 맵 문제이다. 이 문제에서는 n개의 문자열이 주어지고 그다음에 주어지는 m개의 문자열 중에 몇 개가 n개의 문자열과 겹치는지를 출력만 해주면 되는 문제이다. 이 문제는 HashMap을 이용해서 풀겠다. HashMap을 잘 모르면 밑에 있는 링크를 참고하면 되겠다. https://proper.. 2022. 4. 26.
[자료구조] 해시맵 (HashMap) 목차 HashMap 이란? 우선 Map은 키와 값으로 구성된 Entry 객체를 저장하는 구조를 가지고 있는 자료구조이다. 영어 사전을 예로 들어보겠다. person은 사람, baseball은 야구란 뜻을 가지고 있다. 따라서 맵에는 다음과 같이 저장되어 있을 수 있다. 키 값 "person" 사람 "baseball" 야구 Map은 리스트나 배열처럼 순차적으로 해당 요소의 값을 구하지 않고 키를 통해 값을 얻는다. 이게 Map의 가장 큰 특징이기도 하다. 추가로 키는 중복이 불가능하고 동일한 키 값으로 값을 넣을 시 최근에 넣은 값이 적용된다. 주어진 예로 보면 baseball의 뜻을 찾을 때, 사전의 있는 내용들을 순차적으로 검색해서 찾는 게 아닌 baseball이라는 단어가 있는 곳만 찾는다는 것이다... 2022. 4. 26.
[백준] 2444번 : 별 찍기 - 7 – JAVA [자바] https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 문제 풀이 백준 2444번 별 찍기 - 7은 브론즈 3 난이도의 구현 문제이다. 이 문제에서도 마찬가지로 예제에서 n과 패턴이 주어지고 패턴에 나와있는 것처럼 별을 출력해주면 된다. 이 문제도 이중 for-loop을 이용해서 푼다. 우선 바깥 for-loop은 i = 1부터 시작하고 i = n까지이다. 우선 i가 1일 때, 스페이스가 4개가 있는 거를 볼 수 있다. 즉, j = 1부터 n - i까지인 for-loop을 만든다. 이 for-loop에서는 스페이스만 추가한다. 그리고 보면 i = 1일 때, *이 1개, i .. 2022. 4. 23.
[백준] 14607번 : 피자 (Large) – JAVA [자바] https://www.acmicpc.net/problem/14607 14607번: 피자 (Large) 예제1의 입력이 1이므로, 게임 시작부터 갑이 분리할 수 있는 피자탑이 없습니다. 따라서 갑이 얻는 즐거움은 0입니다. 예제2의 정답 3은 다음과 같은 과정을 통해 얻어집니다. 먼저 놀이를 시작 www.acmicpc.net 문제 문제 풀이 백준 14607번 피자 (Large)는 실버 3 난이도의 수학 문제이다. 이 문제의 알고리즘 분류에서는 DP도 같이 있지만 DP로는 못 푸는(?) 문제이다. 이 문제는 그리고 2017 아주대학교 프로그래밍 경시대회 (APC) Division 2에 나온 B2번 문제였다. 우선 문제에서 피자판의 개수 n이 주어진다. n의 범위는 1부터 10까지다. 피자판의 높이가 A라고 .. 2022. 4. 22.
[백준] 1302번 : 베스트셀러 – JAVA [자바] https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제 문제 풀이 백준 1302번 베스트셀러는 실버 4 난이도의 문자열 및 맵을 이용한 자료구조 문제이다. 이 문제에서는 n개의 책 제목들이 주어지고 각 책 제목의 카운트를 세서 카운트가 가장 높은 책의 제목을 출력하면 된다. 그리고 카운트가 가장 많은 책이 여러 개일 경우 사전 순으로 가장 앞서는 책 제목을 출력하면 된다. 우선 이 문제는 해시 맵을 이용 해서 풀 것이다. 맵을 선언 하는데.. 2022. 4. 22.
[백준] 2445번 : 별 찍기 - 8 – JAVA [자바] 별 찍기 - 8https://www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 문제 풀이 백준 2445번 별 찍기 - 8는 브론즈 3 난이도의 구현 문제이다. 이 문제에서도 마찬가지로 예제에서 패턴이 주어지고 패턴에 나와있는 것처럼 별을 출력해주면 된다. 이 문제도 이중 for-loop을 이용해서 푼다. 우선 바깥 for-loop은 i = 1부터 시작하고 i = n까지이다. 그리고 패턴을 보면 *이 i개만큼 양 끝에 있고 가운데에는 2n - 2i개만큼의 스페이스가 있다. 이거를 n번 반복한다. 그렇게 하면 일단 n이 5일 때, 다음과 같은 결과를 얻는다. * * ** ** *** *.. 2022. 4. 22.
[백준] 13458번 : 시험 감독 – JAVA [자바] https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제 문제 풀이 백준 13458번 시험 감독은 브론즈 2 난이도의 수학 문제이다. 이 문제에서는 n개의 시험장이 있고 각 i번 시험장에는 Ai명만큼의 응시자가 있다. 그리고 감독관으로는 총감독관과 부감독관이 있고 총감독관은 한 시험장에서 B명을 감시할 수 있고 부감독관은 한 시험장에서 C명을 감독할 수 있다. 그리고 각 시험장에 있는 모든 .. 2022. 4. 22.
반응형