본문 바로가기

전체 글411

[백준] 2910번 : 빈도 정렬 – JAVA [자바] https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 문제 문제 풀이 백준 2910번은 실버 3 난이도의 정렬 및 해시 문제이다. 이 문제에서는 숫자 N개가 주어진다. 이때, 이 숫자들을 가장 자주 등장하는 빈도수대로 정렬을 하면 된다. 추가로, 등장하는 횟수가 같으면 먼저 나온 숫자가 앞에 나오게 하면 된다. 이 문제를 풀려면 우선 해시맵을 이용해서 숫자들의 빈도수를 입력받아야 한다. 이 빈도수는 나중에 정렬을 할 때 필요하다. 추가로, 아래에 있는 코드를 보면 알겠지만, 리스트를 2개 만.. 2023. 7. 25.
[백준] 20291번 : 파일 정리 – JAVA [자바] https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 문제 문제 풀이 백준 20291번 파일 정리는 실버 3 난이도의 문자열, 정렬, 해시 및 파싱 문제이다. 이 문제에서는 N개의 파일 이름들이 주어지고 이 파일 이름들의 확장자와 개수를 출력하면 된다. 그리고, 파일 확장자가 여러 개 있을 때 사전순으로 정렬해서 출력하면 된다. 이 문제는 두 가지 방식으로 풀겠다. 첫 번째 방식은 HashMap을 이용하는 방식이고 두 번째 방식은 TreeMap을 이용하는 .. 2023. 7. 18.
[백준] 1351번 : 무한 수열 – JAVA [자바] https://www.acmicpc.net/problem/1351 1351번: 무한 수열 첫째 줄에 3개의 정수 N, P, Q가 주어진다. www.acmicpc.net 문제 문제 풀이 백준 1351번 무한 수열은 골드 5 난이도의 DP 및 해시 문제이다. 이 문제 자체는 되게 간단하다. 3개의 정수 N, P, Q가 주어지고 아래에 있는 공식을 써서 An을 구하면 된다. 이 문제에서는 참고해야 할 게 있다. 우선 정수 N의 범위 0 ≤ N ≤ 10^12이다. 즉, 이 범위는 long 형이고 자바에서는 배열이 long 형인 크기로 만들지 못한다. 자세한 이유는 이 링크를 참고하면 되겠다. 즉, 값들을 배열에 저장을 할 수가 없기 때문에 해시맵에 저장해야 한다. 추가로, 이 문제는 Bottom-Up 방식을 이.. 2023. 7. 16.
[백준] 2776번 : 암기왕 – JAVA [자바] https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 문제 문제 풀이 백준 2776번 암기왕은 실버 4 난이도의 자료 구조 및 해시 문제이다. 이 문제에서는 먼저 수첩 1에 있는 정수 N개가 주어지고 그다음에 수첩 2에 있는 정수 M개가 주어진다. 이때, 수첩 2에 있는 숫자들 중에서 수첩 1에도 있으면 1을 출력하면 되고, 없으면 0을 출력하면 된다. 문제에서 주어진 예시를 한번 보겠다. 수첩 1에는 4 1 5 2 3이 있다. 그리고 수첩 2에는 1 3.. 2023. 7. 12.
[백준] 11652번 : 카드 – JAVA [자바] https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 문제 문제 풀이 백준 11652번 카드는 실버 4 난이도의 정렬 및 해쉬 문제이다. 이 문제에서는 N개의 숫자들이 주어지고 가장 빈도수가 높은 숫자를 출력하면 된다. 문제에서 주어진 예제를 예시로 들어보겠다. 5개의 숫자가 주어지고 이 5개의 숫자들이 1 2 1 2 1이라고 해보겠다. 1이 3개, 2가 2개가 있으므로 가장 많이 나온 수는 1이다. 따라서 1을 출력하면 된다. 이 문제에서는 .. 2023. 7. 12.
[백준] 1629번 : 곱셈 – JAVA [자바] https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제 문제 풀이 백준 1629번 곱셈은 실버 1 난이도의 수학 및 분할 정복 문제이다. 이 문제에서는 자연수 A, B, C가 주어진다. 이때 (A^B) % C를 구하면 된다. 이 문제는 간단한 거듭제곱처럼 보이지만 그렇게 간단하지만은 않다. 이 이유는 문제에서 0.5초 시간제한이 있다. 그래서 이 문제는 Math.pow를 사용해서 풀 수가 없다. 이제 그 이유를 설명해 보겠다. 예를 들어서 E ^ a를 구해보겠다. 기본 Math.pow의 코드는 다음과 비슷하다... 2023. 4. 25.
[백준] 2217번 : 로프 – JAVA [자바] https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 문제 풀이 백준 2217번 로프는 실버 4 난이도의 수학 및 그리디 문제이다. 이 문제에서는 들 수 있는 물체의 중량이 다를 수 있는 로프 N개가 주어진다. 그리고 로프를 병렬로 연결하면 로프에 걸리는 중량을 나눌 수 있다. 이 문제에서 k개의 로프를 사용하여 중량이 w인 물체를 들어 올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다고 주어졌다. 이때 로프 N.. 2023. 4. 25.
[백준] 1931번 : 회의실 배정 – JAVA [자바] https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 문제 풀이 백준 1931번 회의실 배정은 실버 1 난이도의 그리디 및 정렬 문제이다. 항상 그리디 문제들을 공부하고 풀어야지 풀어야지 생각만 했다가 학교에서 CSE2310 Algorithm Design이라는 과목에서 그리디 알고리즘에 대해 배우고 시험도 끝난 다음에 드디어 문제들을 조금 풀게 되었다. 이 문제는 그리디에서 가장 기본적인 문제인 거 같다. 학교에서도 그리디를 처음 배울 때 접했던 문제가 이런 문제였다. 학교에서 배울 때 이런 문제를 'Interval Scheduling'이라고 한다고 배웠다. .. 2023. 4. 25.
반응형