Algorithm 16

백준 1620 나는야 포켓몬 마스터 이다솜 [JAVA]

리뷰 시간초과 HashMap 사용. key값이 입력되면 map.get(key)로 value값을 얻고, value값이 입력되면 map.setKey()를 반복문으로 돌리면서 map.get(key)와 value값을 대조해 올바른 key값을 얻었다. map.setKey() 반복문을 최대 100000번 돌리는 과정에서 시간초과가 발생한 것 같다. 위의 문제 해결을 위해, HashMap과 ArrayList 두개를 사용해서 값을 저장한 뒤, 문자가 입력될 경우에는 map.get(key)를 사용해 값을 얻고, 숫자가 입력될 경우에는 setKey()반복문 대신 list.get(int)를 사용해서 즉시 값을 얻도록 했다. 공부한 것 HashMap key값으로 value값 찾기 map.get(key값) HashMap val..

ALGORITHM 2024.01.28

백준 2745 진법 변환 [JAVA]

리뷰 성공 char타입 계산 실수가 여러번 있었다. 공부한 것 제곱 메소드 : Math.pow(double A, double B) = A의 B승 char타입 값이 숫자인지 확인하는 메소드 : boolean Character.isDigit(char C) char타입 연산 방법 정리 //주요 아스키코드 문자 ASCII CODE 0 48 A 65 a 97 //char타입 비교 시 따옴표 붙이기 n.charAt(i) == 1 //(x) n.charAt(i) == '1' //(o) //char타입 숫자를 int로 변환하려고 할 때, (int)를 붙이면 아스키코드 값이 반환된다. //char타입 숫자 - '0' 을 하면 유니코드로값으로 연산 후 10진수와 동일한 값을 반환한다. arrn[i] = (int)n.cha..

ALGORITHM 2024.01.04

백준 1934 최소공배수 - 3가지 방법 [JAVA]

리뷰 메모리 초과 for문 사용, 1씩 증가시키면서 곱한 뒤 HashSet에 넣는 작업을 반복했고 도중에 add()메소드가 false를 리턴하면 그 값을 최소공배수로 출력하였다. 입력되는 수가 크면 클수록 앞에서부터 하나씩 비교하는 건 비효율적이어서 메모리 초과가 뜬 것 같다. 위의 메모리 초과 문제를 해결하기 위해 둘 중 큰 수만 for문 사용, 1씩 증가시키면서 곱한 뒤 작은 수로 나눴을 때 나머지가 0이 되는 값을 최소공배수로 출력하였다. 공부한 것 추가적으로 최소공배수를 구하는 방법으로는 유클리드 호제법이 있다. 최소공배수 = 두 수의 곱/최대공약수 문제 더보기 문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를..

ALGORITHM 2024.01.02

백준 10809 알파벳 찾기 [JAVA]

리뷰 성공 배열 공간 낭비가 있었다. char타입 a(97)~z(122)를 배열에 넣으려고 char[123]을 생성했다. 공부한 것 a~z는 "각 알파벳- a"를 하면 "0,1,2...N"이 나오기때문에 배열에 순서대로 넣을 수 있다. char타입 배열 값 존재 확인 시 "!=null"이 아니라, "!=0"으로 비교한다 ( 10진수 0이 char타입 NUL). indexOf()는 문자(열)을 앞에서부터 순차적으로 찾으며 처음 발견된 인덱스를 반환하고, 찾지 못할 경우 -1을 반환한다. lastIndexOf()는 뒤에서부터 찾는다. 문제 더보기 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -..

ALGORITHM 2023.12.17

코딩테스트 대비 알고리즘 공부법

코딩테스트 대비 효율적 알고리즘 공부법 | Udemy why? 1. 일관성, 공정성 - 표준 입출력, 표준 STL(Standard Template Library) 사용 2. Problem Solving(문제해결력) - 플랫폼, 기술스택, 프레임워크 등과 관계없는 기초 능력. 필수요소 1. 독해력(문제파악) 2. 배경지식(자료구조, 알고리즘 지식) 3. 문제해결력(아이디어) 4. 구현력(코딩) 5. 검증,디버깅 학습 방법 1. 백준 브론즈 30문제 2. 기초 개념 학습 자료구조 - 배열, 스택, 큐, 우선순위 큐, 맵, 집합 알고리즘 - 그리디, 브루트포스, DFS/BFS, 백트래킹, DP, 이분탐색 3. 기초 개념 - 아이디어, 로직 연습 (문풀 but 구현x) 4. 문풀&구현 5. 중급 개념 최단경로 ..

ETC 2023.01.18