본문 바로가기

전체 글

(118)
[JAVA] Map과 구현 클래스 코딩테스트를 준비하기 위해 코딩을 하다 보니 Map을 종종 사용할 때가 있다. 코드를 짜다 문득 Map과 HashMap의 차이점이 뭘까 해서 찾아봤다. 사실 주로 Map을 사용했었는데 이번에 HashMap을 사용했고, 둘이 다른 점이 있어서 기록할 겸 적어놓는다. 간단하게 말하자면 Map은 HashMap이 구현하는 인터페이스라고 생각하면 된다. 1. Map map = new HashMap(); 2. HashMap map = new HashMap(); HashMap을 사용하려면 위와 같이 생성할 수 있다. 1번 코드의 경우 Map 인터페이스의 참조 변수를 선언 후 HashMap인스턴스를 할당했다. 즉, Map 인터페이스의 메서드를 모두 사용할 수 있다는 소리다. 2번 코드의 경우 HashMap 클래스의 인..
[Baekjoon 25206] 너의 평점은 - JAVA [Silver V] 너의 평점은 - 25206 문제 링크 성능 요약 메모리: 14640 KB, 시간: 136 ms 분류 구현, 수학, 문자열 제출 일자 2023년 11월 5일 13:53:33 문제 설명 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치훈이의 전공평점을 계산해주는 프로그램을 작성해보자. 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다. 인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다. A+ 4.5 A0 4.0 B+ 3.5 B0 3.0 C+ 2.5 C0 2.0 D+ 1.5 D0 1.0 F 0.0 P/F 과목의 경우..
[Baekjoon 25945] 컨테이너 재배치 - JAVA [Silver III] 컨테이너 재배치 - 25945 문제 링크 성능 요약 메모리: 87460 KB, 시간: 464 ms 분류 그리디 알고리즘, 수학, 정렬 문제 설명 항구의 컨테이너 하치장 바닥에는 컨테이너를 쌓을 수 있는 칸이 일렬로 총 n$n$개가 그려져 있고, 현재 하치장에는 총 m$m$개의 컨테이너가 쌓여 있다. 개별 컨테이너의 높이는 모두 1$1$로 동일하며, 각 칸에 쌓을 수 있는 컨테이너의 개수에는 제한이 없다. 즉, ai$a_i$ (1≤i≤n$1 ≤ i ≤ n$)가 현재 i$i$번째 칸에 쌓여있는 컨테이너의 개수를 나타내면, m=∑i=1nai$m = \sum_{i=1}^{n}{a_i}$의 관계가 만족된다. 현재와 같이 높이에 아무 제한이 없이 컨테이너가 쌓여 있을 경우 각 칸별로 쌓여있는..
[Baekjoon 25943] 양팔저울 - JAVA [Silver IV] 양팔저울 - 25943 문제 링크 성능 요약 메모리: 15232 KB, 시간: 156 ms 분류 그리디 알고리즘, 구현 문제 설명 $1$부터 $n$까지 번호가 매겨진 $n$개의 자갈이 있다. 이 자갈들을 다음 절차에 따라 양팔저울에 올려놓는다. $1$번 자갈을 왼쪽, $2$번 자갈을 오른쪽에 올려놓는다. $i = 3, \dots , n$번 자갈 각각에 대해서 차례로 다음 과정 중 하나를 수행한다. 만약 양팔저울이 평형을 이루는 경우, $i$번 자갈을 왼쪽에 올려 놓는다. 만약 양팔저울이 평형을 이루지 않는 경우, $i$번 자갈을 가벼운 쪽에 올려 놓는다. 모든 자갈을 위의 규칙에 따라 올려 놓은 후에도 양팔저울은 평형을 이루지 않을 수 있다. 이경우 가벼운 쪽에 무게추를 올려서 균형..
[Baekjoon 26110] Palindrome Type - JAVA [Gold III] Palindrome Type - 26110 문제 링크 성능 요약 메모리: 17504 KB, 시간: 156 ms 분류 재귀, 문자열 문제 설명 A palindrome string is a word which reads the same backward as forward, such as madam or racecar. In this problem we only consider strings with lowercase alphabets. We newly define the types of palindromes. If a string is not a palindrome, we try to make it a palindrome by removing the minimum number of cha..
[Baekjoon 26111] Parentheses Tree - JAVA [Silver II] Parentheses Tree - 26111 문제 링크 성능 요약 메모리: 59836 KB, 시간: 356 ms 분류 자료 구조, 스택, 문자열 문제 설명 A rooted ordered tree $T$ can be expressed as a string of matched parentheses $p(T)$. The string representation $p(T)$ can be defined recursively. As a base case, a tree consisting of a single node is expressed by a pair of parentheses (). When a rooted ordered tree $T$ consists of a root node and ..
[Baekjoon 16234] 인구 이동 - JAVA [Gold IV] 인구 이동 - 16234 문제 링크 성능 요약 메모리: 297472 KB, 시간: 560 ms 분류 너비 우선 탐색, 그래프 이론, 그래프 탐색, 구현, 시뮬레이션 문제 설명 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 하루 동안 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을..
[Baekjoon 14400] 편의점 2 - JAVA [Silver II] 편의점 2 - 14400 문제 링크 성능 요약 메모리: 49452 KB, 시간: 660 ms 분류 기하학, 수학, 정렬 문제 설명 영선이는 이번에 편의점으로 창업을 하려고 계획 중이다. 이번 창업을 위해 많은 준비를 하고 있는데, 아직 편의점을 세울 위치를 결정을 하지 못했다. 영선이는 미리 시장조사를 하여, 주요 고객들이 어느 위치에 존재하는지 파악을 하였고, 모든 고객들의 거리의 합을 최소로 하려한다. 두 위치의 거리는 |x1-x2|+|y1-y2|로 정의한다. n명의 주요 고객들의 위치 (xi,yi)이 주어질 때, 모든 고객들의 거리 합을 최소로 하는 위치에 편의점을 세울 때, 그 최소 거리 합을 출력하시오. 입력 첫째 줄에는 주요 고객들의 수n이 주어진다.(1≤n≤100,000..