본문 바로가기

Java

(10)
[JAVA] Map.put()의 반환 규칙 : null을 반환하는 이유(putIfAbsent 메서드) https://0htmdwns.tistory.com/17 [JAVA] Map : 하나의 key에 여러 value를 저장하는 방법백준 https://www.acmicpc.net/problem/1181개요단어를 입력받고, 입력받은 단어들을 정렬하여 출력한다. 이때,중복을 제거해야한다.길이가 짧은 단어부터 출력한다.길이가 같다면 사전 순으로 출력한다.0htmdwns.tistory.com 개요위 글을 작성하던 중, map의 삽입 방식에서 null을 반환하는 이유가 궁금해 작성하게 되었음. Map.put()의 반환 규칙?put(key, value)는 이전에 그 key에 매핑된 value를 반환하고, value를 덮어 씌우는 것이다.만약 이전에 없었다면 null을 반환한다.Map map = new HashMap(..
[JAVA] Map : 하나의 key에 여러 value를 저장하는 방법 백준 https://www.acmicpc.net/problem/1181개요단어를 입력받고, 입력받은 단어들을 정렬하여 출력한다. 이때,중복을 제거해야한다.길이가 짧은 단어부터 출력한다.길이가 같다면 사전 순으로 출력한다. 접근key : 단어의 길이value : 단어들 key(단어의 길이)를 TreeMap을 활용해 오름차순으로 자동 정렬하게 하고,value(단어) 또한 TreeSet으로 자동 정렬되게 했다. import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(ne..
[JAVA] 슬라이딩 윈도우 알고리즘 백준https://www.acmicpc.net/problem/12891 슬라이딩 윈도우 알고리즘이란?2개의 포인터로 범위를 지정한 다음, 범위를 유지한 채로 이동하며 문제를 해결하는 알고리즘.ex) 창틀에 창문을 놓고 이동하는 모양과 유사함. 나의 접근import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputS..
[JAVA] 구간 합 구하기 4 https://www.acmicpc.net/problem/11659 접근import java.util.*;import java.io.*;public class Solve11659 { public static void main(String[] args) throws IOException{ Scanner sc = new Scanner(System.in); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //데이터의 개수, 질의 개수 입력 int dataCount = sc.nextInt(); int question = sc.nextInt(); ..
[JAVA] Map에서 value값에 대응하는 key값 찾는 방법? - 백준1620번 백준 1620번 문제https://www.acmicpc.net/submit/1620/94655619 개요첫째 줄에 도감에 수록되어 있는 포켓몬의 개수 N과 맞춰야 하는 문제의 개수 M이 주어진다.둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어온다.이후 총 M개의 줄에 맞춰야하는 문제가 입력으로 들어온다.문제가 알파벳으로 들어오면, 포켓몬 번호를 출력문제가 숫자로 들어오면, 포켓몬 번호에 해당하는 문자 출력 접근value값(포켓몬 도감 번호)에 대응하는 key(포켓몬 이름)을 찾는 방법을 사용했다.import java.io.*;import java.util.*;public class Main { public static void ma..
[JAVA] Stream API - 가독성 좋은 간결한 프로그래밍 Stream이란?자바 8부터 도입된 기능으로, 데이터의 흐름을 함수형 스타일로 처리할 수 있도록 해주는 API이다.Stream은 탐색, 정렬, 필터링, 매핑 등을 선언형(무엇을 할지) 방식으로 처리할 수 있게 한다.컬렉션(List, Set 등)의 데이터를 하나씩 순차적으로 처리하는 파이프라인이다.파이프라인이란?시스템의 효율을 높이기 위해 명령문을 수행하면서 몇 가지 특수한 작업들을 병렬 처리하도록 설계된 것을 말한다.쉽게 말해, 데이터를 여러 단계에 걸쳐 처리하는 흐름을 의미함.Stream에서 데이터를 중간 처리 연산자들을 거쳐 최종 연산으로 보내는 일련의 흐름(체인 구조)를 말함. 명령형 방식 코드List names = Arrays.asList("Alice", "Bob", "Charlie", "Alex..
[JAVA] 소수 구하기 - 에라토스테네스의 체 백준 1929번 - 소수 구하기https://www.acmicpc.net/problem/1929 개요첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.접근에라토스테네스의 체 알고리즘을 사용해 문제를 작성하였다. 에라토스테네스의 체 알고리즘이란?가장 작은 소수인 2부터, 2의 배수를 모두 소거, 3을 제외한 3의 배수를 모두 소거,4는 2의 배수로 제거 됐기 때문에 넘어감.5를 제외한 5의 배수를 모두 소거, 이렇게 제거되지 않은 수의 배수를 소거해가며 주어진 범위의 소수를 구하는 방법이다. 예) 에라토스테네스의 체로 1~50까지의 범위에서 소수..
[JAVA] 입력 받은 숫자의 개수 구하기(정렬, 이분 탐색, HashMap, TreeMap) 백준 10816번 문제 '숫자 카드 2'https://www.acmicpc.net/problem/10816개요중복 가능한 숫자 카드 N개를 입력받고, M개의 임의의 정수를 입력해, 해당 정수가 각각 몇 개 있는지 구한다.접근public static void main(String [] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //1번 List list = new ArrayList(); ..