![[Java] 백준 11869번 문제 (님블)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbETQr5%2FbtswPUPsGYz%2FAAAAAAAAAAAAAAAAAAAAAImpfQouqzR2T0fqwxIjsxZ1KU9qtFXOr7zF9lg8W_Mf%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DNR%252FuJWLUPNMFhLsKjaYmKFO5EQ8%253D)
문제설명 소스코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); int xor = Integer.parseInt(st.nextToken..
![[Java] 백준 11868번 문제 (님 게임2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbXeKHs%2FbtsxgTt8r3m%2FAAAAAAAAAAAAAAAAAAAAAOZvkwO4v0a2SyDC2aA6Zegkf-BRf2cIqolumDALIos5%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DP4HGP9FE8ZAoYalqYEbUWFO%252FROk%253D)
문제설명 소스코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); int xor = Integer.parseInt(st.nextToken..
![[Java] 백준 1252번 문제 (이진수 덧셈)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FAsJ8V%2FbtswcI154aF%2FAAAAAAAAAAAAAAAAAAAAAKuphf19SSUVBYWddZtgL9ZKKFXg31Y2v3Tj_hUGA8y7%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DJdoQ2X22iQDCNkbjv%252Fcpsoza8vQ%253D)
문제설명 소스코드 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String tempA = sc.next(); String tempB = sc.next(); BigInteger A = new BigInteger(tempA, 2); BigInteger B = new BigInteger(tempB, 2); BigInteger sum = A.add(B); System.out.println(sum.toString(2)); } } 설명 공식 문서를 확인해보면 BigInteger 클래스의 생..
![[Java] 백준 1015번 문제 (수열 정렬)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbyDxPZ%2Fbtsv7TKdLAT%2FAAAAAAAAAAAAAAAAAAAAAFoX1EeUz7_8EeDNElElNRAS4VUihWBwZJHzq9-4uDi6%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DY0UOmoJgLpkah5rTFQ5hP%252Fzgelo%253D)
문제설명 소스코드 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int arr[][] = new int[2][N]; //2행 N열 배열 for(int i = 0; i < arr[0].length; ++i) { arr[0][i] = sc.nextInt(); //0행 입력받음 arr[1][i] = arr[0][i]; //1행의 값들은 0행의 값들과 같게함 } Arrays.sort(arr[1]); //1행의 값들을 정렬시킴 for(int i = 0; i ..
![[Java] 백준 1417번 문제 (국회의원 선거)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbmc0tC%2FbtswgWeqofF%2FAAAAAAAAAAAAAAAAAAAAAESE81nEmJ96VVsKYBDY48Irnzze-KuAICSY5u8Bp_ky%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DHgyWj1VgOKbXOXrDexHbgRoEw%252Fc%253D)
문제설명 소스코드 import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int me = sc.nextInt(); //나 == 다솜 Integer arr[] = new Integer[N-1]; //내림차순 정렬을 위해 박싱 int count = 0; //매수해야 하는 사람 수 for(int i = 0; i < arr.length; ++i) arr[i] = sc.nextInt(); while(true) { ..
![[Java] 백준 1026번 문제 (보물)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fehb53u%2Fbtsu8kHDUu2%2FAAAAAAAAAAAAAAAAAAAAAAtlUQjqFsoO4_tz6bEz3g6TTJK65ZEFRdfnUVQFVc1_%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D1aAtp40f8shX9abg8%252FphX%252BdQzng%253D)
문제설명 소스코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int A[] = new int[n]; Integer B[] = new I..
![[자료구조] 해시 테이블](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcsLHRy%2FbtstfS6QEpF%2FAAAAAAAAAAAAAAAAAAAAAAkGffwlAYAsUuqGujBGdYK5MLzUBZV49GdImg34EUvN%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D3KsqHcZVn43upDS3pzlobbyPFI8%253D)
이 글은 누구나 자료 구조와 알고리즘(저자 : 제이 웬그로우)의 내용을 개인적으로 정리하는 글임을 알립니다. 패스트푸드점에서 손님이 음식을 주문하는 프로그램을 작성 중이고, 음식마다 각각 가격이 있는 메뉴를 구현하고 있다고 상상해 보자. 메뉴 배열 안에 메뉴의 이름과 가격을 포함하는 배열이 또 있다고 가정하면, 메뉴 배열안에 있는 하위 배열을 찾는데 O(N)의 단계가 걸린다. 정렬된 배열이라면 이진탐색을 통해O(logN)이 걸린다. 하지만 해시 테이블을 사용하면 데이터를 O(1)만에 룩업할 수 있다. 해시 테이블 해시 테이블은 다양한 프로그래밍 언어에서 서로 다른 이름으로 불린다. 해시, 맵, 해시맵, 딕셔너리, 연관 배열 등의 이름을 갖는다. 대부분의 프로그래밍 언어는 해시 테이블(hash table)..
![[알고리즘] 코드 효율성과 빅 오(Big O)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FFqMIm%2FbtsrS42TZo5%2FAAAAAAAAAAAAAAAAAAAAABClMUd2TIL4twq-C0aNcZgrDNm13hJraPmdxm0iLgeo%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DvHQpjeBYmU67ztEpLd8mdHrz6LU%253D)
이 글은 누구나 자료 구조와 알고리즘(저자 : 제이 웬그로우)의 내용을 개인적으로 정리하는 글임을 알립니다. 다양한 빅오 카테고리 단어 생성기 이 예제는 문자 배열로부터 두 글자짜리 모든 문자열 조합을 모으는 알고리즘이다. 예를 들어, [a,b,c,d]라는 배열이 주어지면 다음과 같은 문자열 조합을 포함하는 새 배열을 리턴한다. 아래는 이 알고리즘을 자바스크립트로 구현한 코드이다. 이 알고리즘의 효율성은 바깥 루프는 N개 원소를 모두 순회하고 각 원소마다 안쪽 루프는 다시 N개 원소를 모두 순회하니 O(N²)이다. 세 글자짜리 모든 문자열 조합을 계산하도록 알고리즘을 수정하면 함수는 아래와 같은 배열을 반환할 것이다. function wordBuilder(array) { let collection = [..