리우's IT Story
article thumbnail
728x90
반응형

 

2023.05.25 - [JAVA기초] - 문자열(string)의 내장함수, Runtime 객체

 

문자열(string)의 내장함수

2023.05.24 - [JAVA기초] - 함수(function) 함수(function) 2023.05.24 - [JAVA기초] - 자바의 배열(Array)과 인덱스,forEach문 자바의 배열(Array)과 인덱스,forEach문 2023.05.23 - [JAVA기초] - for문 for문 2023.05.19 - [JAVA기초] -

ji7290.tistory.com

 

 

카카오블라인드 테스트는 프로그래머스 스쿨의 자료를 참조했다. 

https://school.programmers.co.kr/learn/courses/30/lessons/72410

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

split,replace 를  이용한 글자수 자르기

?를 기준으로 인덱스값으로 문자열이 잘림

 

인덱스 0번째부터 //를 기준으로 문자열이 잘림
/를기준으로 문자열이 잘리고 :를 ""로 대체한다.   =를 기준으로 0,1번째인덱스에 변수값을 저장

반복문을 통해서 arr2의 값을 루프시키고 변수 s에 저장한다음 

= 를 기준으로 =뒤에서 0번째와 1번째를 쪼개서 각각 name, value변수에 담아준다. 

 

 


 

 

아리아나 그란데 - One Last Time 가사를 문자열 함수로  잘라내보는 예제
subString, indexof, replace를 이용하여 내가 원하는 부분만 남기기 

 


이 코드는 네이버 검색 결과 페이지에서 특정 내용을 스크래핑하여 가져오는 예시이다.
search` 변수에 검색어를 설정 예시에서는 "아리아나그란데 onelasttime 가사"로 설정

 

네이버 검색결과의 html코드에서&nbsp; <div> introbox에서 </div>까지 잘라낸다.

 

긴문자열을 문자열 함수를 통해서 아래 출력결과처럼 변형시켜서 출력할 수 있다는 것 정도로만 이해하자. 

 


 

Luhn 알고리즘
카드번호 16자리의 글자를 이용하여 카드번호의 유효성을 검증하는 알고리즘
우측부터 세어서 홀수번째는 그대로 두고 짝수번째는 두배로만든다. 만약 두배로 만들어진 값이 두자리수가 되면
각 자릿수를 합한다 이렇게 만들어진 16자리의 정수를 모두 더하여 그 합이 10으로 나누어 떨어지면
유효한카드번호/ 그렇지않으면 유효하지않은 카드번호이다
문자열로 카드번호를 xxxx-xxxx-xxxx-xxxx 형식으로 전달받아서
유효성을 true/ false로 반환하는 함수를 작성하고 테스트하세요

 

1234-5678-9876-5432형식으로 문자열을 전달받아야하니까 

 

매개변수 num의 문자열 - 를&nbsp; 공백으로 대체한다.
만약 num의 문자열 길이가 16이 아니라면 false를 반환.
num의 길이(16)만큼 루프시킨다
.&nbsp; 변수ch num의 요소를 꺼내서 담아준다.

0은 아스키코드로 변환하면 48이다. char형을 num으로 형변환시켜주는 일종의 트릭이다. 

 

n이 두자리수가 되면 n/ 10= 몫 + 나머지

sum변수에 n을 더해준다. 

 

함수호출
출력결과

 

 


 

프로그래머스 스쿨
2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천

 

 

신규 아이디 추천 및 아이디 조건

 

 

1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다.
2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다.
6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
7단계 new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.

 

 

toLowerCase로 new_id를 소문자로 변환

 

 

new_id의 길이만큼 루프시키면서 charAt내장함수로 요소를 꺼내서 answer에 더해주고&nbsp; myFilter가 공백을 포함하면 answer에 대입해주기

 

 

2단계의&nbsp; answer가 마침표2번을 포함하면 replace 내장함수로 치환해주기

 

 

startsWith , endsWith내부함수 사용해서 조건을 판별하고 substring으로&nbsp; 제거해주기

 

answer가 공백과 일치하면 answer에 a를 대입

 

answer의 길이가 16보다 크거나 같으면 substring으로 0부터 15의 인덱스의 요소에 있는 문자를 제외하고 모두 제거, 끝에 마침표가 있다면 제거

 

 

answer길이가 2자 이하라면 answer의 길이가 3이 될때까지(while)&nbsp; answer에 추가

 

 

입출력 예

 

 

main함수 안에서 solution함수 호출 및&nbsp; 값의 검증 =&nbsp; new_id와 new_result가 일치하면 true를 출력

 

 

 

 

Solution함수 부분만 프로그래머스 스쿨로 옮긴다.

정답! 

 

2021년도 카카오 블라인드 테스트 - (신규 아이디 추천)

 

728x90
반응형
profile

리우's IT Story

@LRWoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!