21.09.21
<프로그래머스>
* 연습문제 - 서울에서 김서방 찾기
해시맵으로 해결 ~
*해시맵 사용법 익히기 *******
* 2021 카카오 채용연계형 인턴십 - 숫자 문자열과 영단어
해시맵 이용!
선언 더 코드 짧게 하고싶은데 모르겠어요 ,, 저게 최선일까요?
* 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천
2단계를 처음엔
String temp="";
for(int i = 0; i<new_id.length(); i++){
char c = new_id.charAt(i);
if(Character.isLetterOrDigit(c)||c=='-'||c=='_'||c=='.'){
temp+=Character.toString(c);
}
}
반복문을 돌려 이런식으로 해결했는데, replaceAll 을 통해 ^ 을 이용하여 제외를 할 수 있었다.
외우기 ***********
또한 3단계에서
'.'(dot)은 특수한 기호라서 앞에 \\을 붙여주어야 replaceAll에서 사용할 수 있다고 한다.
* 2020 카카오 인턴십 - 키패드 누르기
좌표를 이용하기 위해 XY 객체를 만들었다.
처음에 XY 객체를 담을 pos 배열을 만들어준다. 인덱스를 숫자로 이용하기 위해 크기는 하나 더 큰 13. (1,2,3,4,5,6,7,8,9,*,0,#) -> 이 때, *,0,# 을 10,11,12 로 생각해준다.
i에 따라 x랑 y를 계산한다.(좌표계산)
반복문을 돌리며 생성하며 넣어준다.
left 시작점이 * 이기 때문에 10으로 초기값을, right 시작점이 #이기 때문에 12로 초기값을 설정해준다.
거리 계산에 이용하기 위해 마지막 왼쪽이 어딘지, 오른쪽이 어딘지 저장해준다.
이제 numbers를 돌며 answer에 L인지 R인지 추가한다.
2,5,8,0 인 경우이다.
거리를 계산해 주어 왼쪽과의 거리(leftd), 오른쪽과의 거리(rightd) 를 비교한다.
XY객체를 인자로 받아 거리를 계산한다. XY는 x랑 y를 가지고 있기 때문에 편하게 거리를 계산할 수 있다.
.
.
1단계 쉽지않네,,😥
* 2021 Dev-Matching - 로또의 최고 순위와 최저 순위
stream이용해서 list로 바꿔줬다. contains() 쓰기 위해서,,
이용법 외우기 *********
rank를 계산해주는 함수 -> 불필요한 중복을 막기위해 그냥 함수로 따로 빼주었다.