-
[프로그래머스] 코딩테스트 연습 Level 1 - 핸드폰 번호 가리기비전공자 공부일기/::::: 묻고 답찾기 2020. 1. 27. 19:12
오늘도 해본 프로그래머스 코딩테스트 연습! 재미나닷 힇
오늘은 손코딩(?<-저번글 참고) 할 필요 없이 한번에 쓱쓱 풀었는데,
첨에 연산식 =+ 로 써서 오류나고 스트링 선언에 '' 써서 오류난거 빼고(요즘 엑셀을 하도많이 쓰다보니ㅋㅋㅋ)
한.번.에.
한.번.에.!!!!!!!!!
풀었따!!!!!!
원래 시리즈처럼 연재할 생각은 없었는데
넘 감격스러워서 오늘도 블로그에 남김ㅋㅋㅋㅋ
나의 풀이) substring 이용
아주 간단한 코드이긴 하지만
입문자에게는!!!! 설명이 소중하다는 걸 알기에 쉽게 줄글로 설명해보겠다.
특히 비전공자 문과출신에게는 간략한 설명보다는 오히려 줄글이 더 친숙할 것이다.(사실 내가 그래)
내가 사용한 방법은 substring 메소드를 이용한 솔루션이다.
자바의 substring 메소드는 맨 앞 문자를 0으로 해서 n번째까지 글자를 잘라내 반환하는 기능을 한다.
시작위치를 m, 종료위치를 n이라고 했을 때 substring(m, n) 형식으로 쓴다.
예를 들어 str이라는 문자열이 있을 때, str.substring(0, 3) 이라고 쓰면 첫번째 글자부터 네번째 글자까지 반환한다.
여기서 중요한 것은 '위치'라는 것이다. 시작이 1이 아닌 0이기 때문에
종료위치에 3을 넣으면 세번째가 아닌 네번째 문자가 반환된다.요놈을 응용하면 뒤에서부터 몇 번째까지 문자를 자르는 것도 가능하다.
str.substring(str.length()-3, str.length()) 형식을 써서 말이다.
요놈과 비슷한 놈으로 시작위치부터 길이만큼 잘라주는 메소드도 있음
substr(m, n) ---> m: 시작위치 / n: 길이그래서 내가 쓴 코드를 보면
//a라는 정수에 (전화번호 길이-4)만큼의 숫자 저장 int a = phone_number.length()-4; // for문을 만들어 a길이만큼 *을 answer에 저장 for(int i=0; i<a; i++) { answer += "*"; } //4자리 뺀 갯수만큼 *가 붙어있는 answer에 뒤에 4자리 붙여주기 answer += phone_number.substring(phone_number.length()-4, phone_number.length());
다른사람 풀이) 젤 많이 좋아요 받은 것
이건 많은 사람들이 좋아요를 누르고 유사한 답변도 가장 많은 케이스이다.
내 풀이보다는 모범답안이 궁금해 여기까지 검색해서 온 사람이 더 많을 것이므로 ㅋㅋㅋ
이것도 입문자를 위해 해석하자면,
toCharArray()를 이용해 배열에 전화번호를 저장하고,
for문을 돌려 4자리 뺀 수만큼 *를 다시 배열에 저장한다.
훨씬 깔끔한 방법 같다! 우왕
'비전공자 공부일기 > ::::: 묻고 답찾기' 카테고리의 다른 글
[Mybatis] mapper.xml에 조건문으로 동적 SQL 엘리먼트 이용하는 태그들 (0) 2020.09.04 [디버그] 스프링 jUnit에서 Error creating bean with name 'certifyController': Unsatisfied dependency expressed through field 'servletContext' 어쩌구 뜰때 (0) 2020.09.01 [디버그] 이클립스를 껐는데도 Tomcat 서버가 살아있을 때 - cmd에서 종료시키기 (2) 2020.08.29 [프로그래머스] Level1 예산 Java 문제풀이 - 손코딩(?) (0) 2020.01.27 [Java] 비교연산자 ==과 equals()의 차이점 -- 뭐가 다를까? (0) 2019.08.26