분류 전체보기
-
https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net Counting 정렬로 풀이를 시도했으나 런타임 에러 (ArrayIndexOutOfBounds) 가 발생하여 추가적인 풀이를 고민했다. 근본적으로 문제를 생각했을 때 둘의 교집합을 구하고 [A집합 - 교집합] + [B집합 - 교집합] 을 구하면 된다는 결론이 나왔다. 즉, A집합 + B집합 - 교집합 X 2 를 해주면 된다. 교집합을 구하는 방식은 HashMap의 containsKey를 사용..
(JAVA) 백준 1269번 : 대칭 차집합https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net Counting 정렬로 풀이를 시도했으나 런타임 에러 (ArrayIndexOutOfBounds) 가 발생하여 추가적인 풀이를 고민했다. 근본적으로 문제를 생각했을 때 둘의 교집합을 구하고 [A집합 - 교집합] + [B집합 - 교집합] 을 구하면 된다는 결론이 나왔다. 즉, A집합 + B집합 - 교집합 X 2 를 해주면 된다. 교집합을 구하는 방식은 HashMap의 containsKey를 사용..
2022.11.10 -
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제를 읽고 HashMap 과 Counting 정렬을 사용하고자 했지만 범위가 너무 넓어 HashMap 을 먼저 사용하고 Counting 을 후에 진행하여 진행했다. HashMap - 기존의 값을 확인하는 기능이 필요하여 getOrDefault 를 사용하였다. import java.io.BufferedReader; import java.io.InputStreamR..
(JAVA) 백준 10816번 : 숫자 카드 2https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제를 읽고 HashMap 과 Counting 정렬을 사용하고자 했지만 범위가 너무 넓어 HashMap 을 먼저 사용하고 Counting 을 후에 진행하여 진행했다. HashMap - 기존의 값을 확인하는 기능이 필요하여 getOrDefault 를 사용하였다. import java.io.BufferedReader; import java.io.InputStreamR..
2022.11.10 -
https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제를 읽고 떠오른 생각은 입력 값을 배열에 넣고 M에 대한 입력 값을 정규식으로 Integer 과 String 판별을 진행하면 되겠다! 그렇게 하기 위해서 HashMap과 arr 에 값을 입력하고 정규식으로 matches() 를 사용하였다. 정규식 사용 예시 코드 // 숫자를 찾기 위한 정규식 String REGEX = "[0-9]+"; String str = br...
(JAVA) 백준 1620번 : 나는야 포켓몬 마스터 이다솜https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제를 읽고 떠오른 생각은 입력 값을 배열에 넣고 M에 대한 입력 값을 정규식으로 Integer 과 String 판별을 진행하면 되겠다! 그렇게 하기 위해서 HashMap과 arr 에 값을 입력하고 정규식으로 matches() 를 사용하였다. 정규식 사용 예시 코드 // 숫자를 찾기 위한 정규식 String REGEX = "[0-9]+"; String str = br...
2022.11.07 -
HashMap : HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조입니다. 여기서 키와 값은 모두 객체입니다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없습니다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치됩니다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보입니다. 개인적인 느낌은 PHP로 따지면 연관배열(?)과 같은 느낌이다. HashMap 사용법 # hashMap 선언 HashMap m..
HashMapHashMap : HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조입니다. 여기서 키와 값은 모두 객체입니다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없습니다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치됩니다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보입니다. 개인적인 느낌은 PHP로 따지면 연관배열(?)과 같은 느낌이다. HashMap 사용법 # hashMap 선언 HashMap m..
2022.10.20 -
회사에서 날짜 계산을 js 로 처리하는 부분에 CS 요청이 들어와 수정해야 하는 일이 생겨 작업하던 중 새로 알게 된 부분이 있어 정리해 보려고 한다. Date() 생성자 : Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX 타임스탬프를 담습니다. 위의 내용은 mdn에 기재되어 있는 Date 생성자에 대한 설명이다. 필자는 7일전부터 오늘까지의 날짜 data가 필요하여 그에 맞게 가공하였다. var now = new Date(); now => Thu Oct 13 2022 16:40:06 GMT+0900 (한국 표준시) var timeStamp..
javascript Date회사에서 날짜 계산을 js 로 처리하는 부분에 CS 요청이 들어와 수정해야 하는 일이 생겨 작업하던 중 새로 알게 된 부분이 있어 정리해 보려고 한다. Date() 생성자 : Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX 타임스탬프를 담습니다. 위의 내용은 mdn에 기재되어 있는 Date 생성자에 대한 설명이다. 필자는 7일전부터 오늘까지의 날짜 data가 필요하여 그에 맞게 가공하였다. var now = new Date(); now => Thu Oct 13 2022 16:40:06 GMT+0900 (한국 표준시) var timeStamp..
2022.10.13 -
오버로딩 & 오버라이딩 오버로딩(Overloading) : 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우를 말한다. : 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의 할 수 있다. 주의할 점은 리턴 값만 다른 것은 오버로딩을 할 수 없다는 것이다. class OverloadingTest { public static void main(String[] args) { OverloadingMethods om = new OverloadingMethods(); om.print(); System.out.println(om.print(3)); om.print("Hello!"); Syste..
오버로딩(Overloading) & 오버라이딩(Overriding)오버로딩 & 오버라이딩 오버로딩(Overloading) : 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우를 말한다. : 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의 할 수 있다. 주의할 점은 리턴 값만 다른 것은 오버로딩을 할 수 없다는 것이다. class OverloadingTest { public static void main(String[] args) { OverloadingMethods om = new OverloadingMethods(); om.print(); System.out.println(om.print(3)); om.print("Hello!"); Syste..
2022.09.11 -
MySQL LIMIT OFFSETPaging 처리를 진행하려다 보니 LIMIT & OFFSET 에 대해 알게 되었고, 정리를 해보려고 한다.MySQL 에서는 LIMIT OFFSET을 이용해서 출력되는 행의 갯수를 지정할 수 있다.# 사용법[ LIMIT '행 갯수' OFFSET '시작행' ]: 첫 행은 0부터 시작. ( 0이 아님 ) # 예시첫 행만 출력SELECT * FROM '테이블명' LIMIT 0, 1;SELECT * FROM '테이블명' LIMIT 1 OFFSET 0;네 번째부터 10개 출력SELECT * FROM '테이블명' LIMIT 10 OFFSET 3;
[MySQL] LIMIT OFFSETMySQL LIMIT OFFSETPaging 처리를 진행하려다 보니 LIMIT & OFFSET 에 대해 알게 되었고, 정리를 해보려고 한다.MySQL 에서는 LIMIT OFFSET을 이용해서 출력되는 행의 갯수를 지정할 수 있다.# 사용법[ LIMIT '행 갯수' OFFSET '시작행' ]: 첫 행은 0부터 시작. ( 0이 아님 ) # 예시첫 행만 출력SELECT * FROM '테이블명' LIMIT 0, 1;SELECT * FROM '테이블명' LIMIT 1 OFFSET 0;네 번째부터 10개 출력SELECT * FROM '테이블명' LIMIT 10 OFFSET 3;
2022.09.01 -
[JAVA] - 입력 방법 2가지 입력 방법에 대해 설명하고자 한다. : 출력에서 System 클래스 ( System.out.println() ) ,BufferedReader , StringBuilder, StringBuffer 을 이용해왔다. 이와 반대로 입력 방법 또한 여러가지가 있다. 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); System.out.println(A+B); in.close(); } } : 가장 기초적인 입력 방법..
[JAVA] 입력 방법[JAVA] - 입력 방법 2가지 입력 방법에 대해 설명하고자 한다. : 출력에서 System 클래스 ( System.out.println() ) ,BufferedReader , StringBuilder, StringBuffer 을 이용해왔다. 이와 반대로 입력 방법 또한 여러가지가 있다. 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); System.out.println(A+B); in.close(); } } : 가장 기초적인 입력 방법..
2022.07.25