본문 바로가기

BOJ23

[BOJ] [JAVA] 10816번 숫자 카드 2 두번째 숫자 카드 문제다. 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 이 문제에서는 HashMap의 또다른 사용 법을 알 수 있었다..! HashMap은 key값을 검색했을 때 존재하지 않는 key라면 null을 반환한다. 이 점을 이용해서 cardMap에 카드의 개수가 바로바로 value값으로 입력되도록 했다. 이 후 key를 검색해서 value(동일한 수를 가진 카드의 개수)를 출력했다. import java.util.*; import java.io.*; public.. 2024. 1. 6.
[BOJ] [JAVA] 7785번 회사에 있는 사람 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net HashMap에 이어 TreeMap도 바로 배웠다! 이 문제는 사람 이름이 key, 출근 여부가 value로 부여되는데, 사람 이름의 사전 역순으로 정렬하여 출력해야 하기 때문에 TreeMap을 이용했다. TreeMap은 key값을 정렬하는 것이 가능하다. 대신 시간이 느리다고 한다. import java.util.*; import java.io.*; public class Main { public static void m.. 2024. 1. 6.
[BOJ] [JAVA] 18870번 좌표 압축 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 좌표 압축 문제,,, 주어지는 배열에 대해서 각 배열의 원소를 배열 내의 ranking으로 바꿔서 출력하는 문제이다,,, 처음 생각한 방식은 배열을 입력받고,,, 배열을 set로 다시 받아서 중복 없애고,,, 다시 배열로 변환해서 오름차순 정렬하고,,, 원래 배열에서 for문 돌려서 set애서 변환된 배열에서 원소를 찾아서 index를 뽑아내는 방식이었는데 시간초과됐다,,, 답은 HashMap을 사용하는 거였다!.. 2024. 1. 6.
[BOJ] [JAVA] 10815번 숫자 카드 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 이진 탐색을 이용한 문제였다. 이진 탐색을 말로만 들었지 써본 건 처음이라 살짝 헷갈렸따! 신기해서 올려봤다. import java.util.*; import java.io.*; public class Main { static int [] card; public static void main(String [] args) throws IOException { BufferedReader br = new BufferedReader(new .. 2024. 1. 6.