HashMap, TreeSet - (2)
HashMap, TreeSet - (2) 4-3. [Re] 매출액의 종류 import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; /* 04-03. 매출액의 종류 Re [입력] 첫 줄에 N(5
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 7.
HashMap, TreeSet - (1)
📍 섹션4.HashMap, TreeSet (해쉬, 정렬 지원 Set) HashMap, TreeSet - (1) HashMap (해쉬 맵) 이란? HashMap은 Key-Value가 1:1로 Mapping 되는 자료구조 Mapping으로 인해 삽입, 삭제, 검색이 평균적으로 O(1)인 자료구조 Key는 중복을 허용하지 않지만, Value는 중복을 허용한다. [관련 주요 메소드] //특정 key 존재 여부 확인 map.containsKey('A'); //중복 key 없게 각 키에 해당하는 값(없으면 기본값) 가져오기 map.getOrDefault('A', 0); //해쉬맵 크기 가져오기 map.size(); //해쉬맵 key값 기준으로 전체 탐색 map.keySet(); //특정 키 삭제 map.remove..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 6.
효율성[O(n2) -> O(n)] 섹션 - (2)
효율성[O(n2) -> O(n)] 섹션 - (2) 3-5-(1). 연속된 자연수의 합 (two pointers) • 연속된 자연수의 합으로 정수 N을 표현할 때는~ N/2 + 1 까지의 범위 내에서만 확인하면 된다. import java.util.Scanner; /* 3-5. 연속된 자연수의 합 [설명] N입력으로 양의 정수 N이 입력되면 2개 이상의 연속된 자연수의 합으로 정수 N을 표현하는 방법의 가짓수를 출력하는 프로그램을 작성하세요. */ public class Main1 { //솔루션 함수 public int solution (int N) { int answer = 0, sum = 0, lt= 0; int m = N/2+1; int[] arr = new int[m]; for(int i = 0; ..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 3.
효율성[O(n2) -> O(n)] 섹션 - (1)
📍 섹션 3.Two pointers, sliding window [효율성 O(n2) -> O(n)] 효율성[O(n2) -> O(n)] 섹션 - (1) 3-1. 두 배열 합치기 | Two Pointers 알고리즘 사용 /* 3-1. 두 배열 합치기 [설명] 효율성 오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램을 작성하세요. */ public class Main1 { //솔루션 함수 public ArrayList solution(int n, int m, int[]a, int[]b) { ArrayList answer = new ArrayList(); int p1 =0, p2 = 0; //두 개의 포인터 선언 //각각 지칭할 배열 크기 안에서만 돌도록 조건 넣고 whi..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 2.
배열(Array) 섹션 - (2)
배열(Array) 섹션 - (2) 2-5. 소수(에라토스테네스 체) • 소수 : 1보다 큰 자연수 중 1과 자기 자신만을 약수로 갖는 수 import java.util.Scanner; /* 2-5. 소수(에라토스테네스 체) * * [설명] * 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. * */ public class Main1 { //솔루션 함수 public int solution(int n) { int answer = 0; //int [] 배열 타입은 처음 생성시 기본값 0으로 세팅되어 있다. int[] ch = new int[n+1]; for(int i = 2; i
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 2. 28.
배열(Array) 섹션 - (1)
📍 섹션2. Array(1, 2차원 배열) 섹션 배열(Array) 섹션 - (1) 2-1. 큰 수 출력하기 첫 번째 수는 반드시 출력할 것. + 앞수보다 크면 answer에 이어붙임 import java.util.ArrayList; import java.util.Scanner; /* 2-1. 큰 수 출력하기 * 설명 N개의 정수를 입력받아, '자신의 바로 앞 수'보다 큰 수만 출력하는 프로그램을 작성하세요. (첫 번째 수는 무조건 출력한다) * */ public class Main1 { //솔루션 함수 public ArrayList solution(int n, int[] arr) { ArrayList answer = new ArrayList(); answer.add(arr[0]); //첫수 무조건 넣기 ..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 2. 27.
String(문자열) 섹션 - (3)
String(문자열) 섹션 - (3) 1-9. 숫자만 추출 | 아스키 번호로 구분 후 (1) answer 누적 or (2) isDigit() 구분 후 형변환 * 1-9.숫자만 추출 * * 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. * 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. ( 즉, 첫 0 은 무시함) // 1)문자, 숫자 식별 -> 아스키 번호로 구분 * 문자형 숫자 는'0': 48 2진수 (#=1, *=0) 로 바꾸고 2) 2진수 -> 10진수 변환 3) 아스키 번호 기준으로 10진수 -> 65 문자..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 2. 23.
String(문자열) 섹션 - (2)
String(문자열) 섹션 - (2) 1-5. 특정 문자 뒤집기 | Character.isAlphabetic() 사용해보기 import java.util.Scanner; /* 1-5. 특정 문자 뒤집기 * 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요. * */ // 알파벳과 특수문자를 구분할 수 있어야 하고 // lt와 rt 가 양끝단에서 ++ 출발하고, 둘다 알파벳일 경우에만 교환이 이루어져야 함 // lt 각 문자 배열 만들어 char[] s = str.toCharArray(); int lt = 0, rt = str.length()-1; //각 포인팅 할 것 //주요 로직 // -> 이 안에..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 2. 22.
String(문자열) 섹션 - (1)
String(문자열) 섹션 - (1) 1-1. 문자 찾기 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. // 섹션 1-1 문자 찾기 //한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. //대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다. //입력 : 첫 줄 문자열 , 두 번째줄 문자 입력 //출력 : 첫 줄의 문자열 속에서 두 번째 '문자' 포함된 [문자 개수]를 출력한다. public class Main { //솔루션 함수 (문자열, 문자) => 포함 개수 리턴 public int solution(String s..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 2. 21.