일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- git
- 매개변수 탐색
- 백트래킹
- microflow
- SQL
- algorithm
- lcap
- domain model
- 이분탐색
- 프로그래머스
- dfs
- 정렬
- MySQL
- 그래프
- Recursion
- Mendix
- 자바
- 해시맵
- 트리
- 알고리즘
- 재귀
- 자료구조
- 멘딕스
- 가중치없는그래프
- Bruteforce
- Sort
- 집합
- 스택
- 완전탐색
- 반효경교수님
- Today
- Total
mondegreen
[240209] 알고리즘 리부트 1일차 - 백준 2744 자바 본문
[240209] 알고리즘 리부트 1일차 - 백준 2744 자바
앙갱 2024. 2. 9. 23:28패캠으로 다시 알고리즘 재활치료를 시작했다.
알고리즘 스터디와 병행하며 기초부터 다시 다져보자.
[Part1-Chapter1-Clip01]
1. Java 문자열 클래스를 사용하기 위해 Java.lang 패키지를 사용하는데 별도의 import 문 없이 사용 가능하다고 한다. 코딩 테스트를 풀 때 항상 'import java.util.*;' 만 작성해도 문자열을 사용할 수 있었던 이유였다.
2. String은 한번 인스턴스가 생성되면 수정할 수 없다. 무슨 말이냐면 우리가 보통 array 에서 한 인덱스를 추출해서 값을 변경할 수 있었지만 String은 charAt(idx)로 해당 위치의 값을 조회(참조, 추출) 할 수는 있지만 그 값을 바꿀 수는 없었다. 그 대신 할 수 있었던 것은 1) char배열로 선언해 String을 문자로 쪼개 배열로 변경한 후에 값을 일부 변경하고 다시 new String(char 배열) 로 생성하거나 2) substring 메서드를 활용해서 일부를 가져와서 새로 선언하거나 3) StringBuilder로 새로 선언할 수 있다. 이는 "값을 변경하는 것이 아니고" 새 String을 만들어 갈아끼우는 방식이다. 구체적 사례로는 알고 있었지만 그 이유는 오늘에서야 제대로 이해했다.
3. String 선언 방식은 리터럴 방식과 new 키워드를 활용해서 저장한다. 리터럴로 선언하는 경우 값이 같다면 '==' 연산자로 비교하면 값이 같다면 같다고 결과를 반환한다. new 키워드를 활용해 선언한 string 역시 '==' 연산자로 비교하는 경우 주소값을 비교하기 때문에 다르다고 반환한다. 하지만 equals로 확인한다면 해당 메서드를 오버라이드 했기 때문에 값이 같은 경우에 같다고 결과를 반환한다.
4. 주로 사용하는 메서드는 아래와 같다. 대부분 사용했던 메서드이지만 'compareTo, split, indexOf'는 잘 사용하지 않아서 사용례를 확인해봐야겠다. 찾아보니 아래 indexOf의 메서드 첫번째 인자가 잘못 기재되어 있었다. ch라는 문자를 찾는 것이기 때문에 int가 아닌 String으로 넣어주면 된다. 파라미터를 String 한 개만 넣는 경우도 있는데 이때는 찾고자 하는 문자가 위치한 idx를 반환한다. compareTo 메서드는 ㅎㅎ... 클래스를 새로 선언하고 Comparable 인터페이스를 구현할 때 오버라이딩 했었던 메서드였다. 그래도 무언가를 기억하고 연결하고 있다니 뿌듯하다..
[Part1-Chapter1-Clip02]
- 백준 2944 자바
첫번째 채점 결과에 해당하는 풀이(강의 풀이) 와 두번째 채점 결과에 해당하는 풀이(내 풀이)이다.
매번 프린트문을 호출하지 않고 아래와 같이 String을 선언하여 만들어가는 것도 가능하다.
'알고리즘 풀이 및 리뷰 > [패캠] 핵심유형 20개로 한 번에 끝내는 알고리즘 코딩테스트 리뷰' 카테고리의 다른 글
[240214] 알고리즘 리부트 6일차 - 백준 1236, 10431 자바 (0) | 2024.02.14 |
---|---|
[240213] 알고리즘 리부트 5일차 - 백준 10158 자바 (0) | 2024.02.13 |
[240212] 알고리즘 리부트 4일차 - 백준 13223 자바 (0) | 2024.02.12 |
[240211] 알고리즘 리부트 3일차 - 백준 1543 자바 (0) | 2024.02.11 |
[240210] 알고리즘 리부트 2일차 - 백준 1919, 1157 자바 (1) | 2024.02.10 |