String과 관련된 메소드 > String 입력 : scanner.next() 띄어쓰기가 있는 입력 : scannex.nextLine() String char 접근 (인덱스로 접근) : str.chartAt(0) String 대,소문자로 변경 : str.toUp
replaceAll( ) : 문자열을 원하는 문자열로 변경 보통 정규식 표현과 같이 사용 ex) str="\*AFC$FG" str=str.replaceAll("^A-Z","") // A-Z가 아니라면 공백처리 // 출력 AFCFG Character.isDi
입력 값이 nextInt() -> nextLine() 이라면 문제nextInt()에는 개행 문자(enter)가 포함되서 넘겨짐nextLine()은 앞에 enter를 확인하고 값이 입력되지 않음\-> 해결법 : nextInt() -> nextLie() 공벡 제거 -> n
ArrayList 정렬 (Collections.sort() 이용)Collections.sort() 이용오름차순 Collections.sort(arrayList);내림차순 Collections.reverse(arrayList);new Compartor와 CompareTo
hashMap -> getOrDefault() : 찾는 키가 존재하면 해당 키의 값을 반환하고, 없으면 기본값을 반환함ex) hashMap.put(key,hashMap.getOrDefault(key,0)+1);String -> String\[] 배열로 변환 ex) S
2개의 맵이 같은지 비교 -> equals를 사용하면 됨주로 아나그램 (순서가 바뀌어서 같은지 확인하는 문제에서 사용)hashMap1.eqauls(hasMap2) -> 복잡하게 check 해줄 필요 없다.자바에는 Map의 value값이 변경되면 자동 변경되지 않는다!
괄호 문제는 항상 괄호가 '(' 이면 -> push를 생각한다 : 분기점 잡기 그 외에는 ')'는 -> pop으로 생각괄호문제는 스택을 보통 이용 (테스트 케이스에서 실수하는 경우가 많으므로 주의 사항지킬것) - 닫는 괄호가 먼저 나오면 안되는 경우 등첫번째 값을 먼저
괄호 문제는 -> 대부분 stack을 이용한다. 원형 문제는 -> queue를 사용한다.Java queue 메소드문제를 대입하여 stack을 어떻게 사용할지 모름분기점을 나누어서 간단하게 생각하는 방법이 필요괄호 문제는 Stack 문제라고 생각하고 접근인덱스 접근할때
재귀함수란? 재귀함수 : 자기자신을 호출하는 것 stack을 이용 1. 재귀함수를 이용하여 1,2,3을 출력하라 dfs는 종료 조건을 명시해주면 된다 dfs는 호출하는 순서에 따라 나오는 값이 다르다. > java // 재귀함수 public void d
최단 거리를 찾는 알고리즘Queue를 사용하며 Level별 탐색을 함 노드를 만든다큐를 만들어서 첫번째 노드를 넣는다while (!queue.isEmpty)로 큐를 진행한다.for문으로 남아 있는 큐를 돌면서 Node와 연결된 노드를 큐를 찾는다. 큐에서 데이터 1개를
Vertex(node)와 Edge로 이루어진 것그래프의 종류 3다지무방향 그래프 (양방향 그래프)인접 행렬로 표현 (2차원 배열)1은 연결된 정보행에서 열로 이동한다라고 생각행(node 1,2,3,4,5)이 증가하면서 연결된 열(node 1,2,3,4,5) 찾기grap
각 원소를 포함한다(O) 포함하지 않는다. (X)로 구현 -> DFS종료조건은 level이 끝까지 다 다를때까지이다. (종료 조건이 헷갈릴경우에는 n이 1개라고 생각하고 접근하기 )이 문제는 check배열을 사용하지 않는다. 이유는 포함한다, 포함하지 않는다로 모든
1. 중복순열 구하기 입력값 > N:3, M:2 // N은 원소의 개수, M은 뽑을 개수 원소:3,6,9 출력 > 3 3 3 6 3 9 6 3 6 6 6 9 9 6 9 9 해결방법 DFS를 활용 필요사항 arr[n] // 전체 원소를 담을 배열 ans[m]
알게 된 점첫번째 방법문제점이렇게 하면 문제 -> 이유는 parti는 map으로 이루어져있기 때문에 중복 map이 못들어감반례) participant : a,b,c,d,a,b / completion : a,b,a,b,d따라서 전체 Map을 돌때는 유의점을 가진다. Ma
우선순위 큐1\. PQ에 기본 자료구조형 넣어서 출력PQ에 Class 넣어서 출력적용결과가격 : 1 작가 : sjs가격 : 31 작가 : ds가격 : 365 작가 : hey가격 : 3650 작가 : sdsPQ에 값을 넣어줌이때 while문 돌때 PQ의 값을 2번 뽑을때
기능개발 > JAVA Queue 선언 해결방법 Modular를 이용하여 주어진 값 찾기 자료구조는 Queue를 사용해서 하나씩 빼고 다음 수와 비교 프린터 > 해결방법 가장 앞에 있는 문서(J)를 뽑는다. -> 앞부터 순서대로 가기 때문에 Queue자료
1. K번째수 > 알게 된 점 배열의 처음과 끝에 인덱스를 찾고 싶을때? copyOfRange(원본배열, 시작 인덱스, 끝 인덱스) 2. 가장 큰 수 Arrays.sort와 Collections.sort의 차이 1. Arrays.sort -> 배열을 정렬할때 사용,
1. 모의고사 > 해결방법 personList 메소드를 만든다 주어진 답 만큼 person1, person2, person3의 답을 만들고 정답과 비교 후 answer(Integer) 리턴 리턴된 answer를 map에 넣어줌 Map을 value 기준으로
DFS로 문제 풀이 문제를 푼다, 안 푼다로 문제 풀이 파리미터를 hap을 받아 타겟이 맞으면 answer++ 증가Union, Find 함수를 만들어서 사용 -> 연결되어 있으면 연결하기BFS로 문제 풀이check배열 (컴퓨터 방문처리를 위함)연결되어 있고 방문처리 안
1. 신고 결과 받기 > 배운점 Map에 value ArrayList or HashSet을 넣는 방법 코드 설명 어려웠던 점 -> 동일 유저가 신고했을때 1명으로 처리 ex) mary -> frod, mary ->frod신고했으면 mary ->frod (1)임 이
객체를 복사하는 유형은 깊은 복사, 얕은 복사가 있음깊은 복사 : 복사된 배열이나 원본배열이 변경될 때 서로 간의 값은 바뀌지 않음얕은 복사 : 복사된 배열이나 원본배열이 변경될 때 서로 간의 값이 같이 변경백트래킹 & DFShttps://velog.io/@q
갈 수 있는 모든 경우의 수를 다 탐색 해야됨 -> DFS 그래프 만들기 -> Map을 이용key는 Node, Value는 연결된 Node 정보들DFS 이용 (int 현재노드, int 양의 수, int 늑대 수, List 다음 갈곳)2-1. 만약 갈 노드가 0(양)이라
주어진 값 \- n개의 원소 ex) 5, 1,3,5,6,8 //첫번째 5는 원소의 개수, 1,3,5,6,8은 원소를 의미DFS - 해당 원소를 사용하냐 안하냐로 구하기 \- static 변수 \- static int n; \- static int ch
합이 홀수 일때 2로 나누면 절대 반이 될수 없음 -> 따라서 NO로 처리합이 짝수 일때 dfs로 부분 집합 나누면 됨dfs로 해당 원소 사용한다, 안한다로 풀면 됨 check 배열은 필요 없음 -> 이유는 dfs 원소의 합을 넣었기 때문에 hap으로 비교하면 됨시간