본문 바로가기

Coding Test

Java 코딩테스트 연습 8일차 (프로그래머스 스쿨 Lv.0, 1095점)

아이스 아메리카노

 

 

 

 

내가 좋아하는 아이스 아메리카노(나도 얼죽아) 문제다. 난이도는 허무할 정도로 쉽다.

 

 

 

 

몫이 첫 번째 원소, 나머지가 두 번째 원소가 되도록 하면 된다.

 

 

특정 문자 제거하기

 

 

 

 

그동안 String 문제를 안 풀었더니 method도 생각 안 나고 어렵다.

 

 

 

 

책에서 replace method를 찾아서 풀었다. String 복습을 자주 해야겠다.

 

 

문자 반복 출력하기

 

 

 

 

엄청난 난관에 부딪혔다. String 문제를 거의 안 풀어 봤는데, 문자를 반복하는 방법 따위 알 수가 없다. 적어도 내가 아는 방법 중에는 없다고 생각했다.

 

 

 

 

문자열을 n으로 곱해 봤다. 역시 안 된다. 이 와중에 또 조건식에 length method가 아닌 field를 적은 모습이다. 배열 문제만 계속 풀었다 보니 자꾸 틀린다.

 

 

 

 

허무하게 맞혔지만 상당한 고민 끝에 작성한 식이다. 사실 이게 안 될 줄 알았다. 그냥 혹시나 싶어 해 보니 됐다. 문자열을 숫자처럼 더할 수 있다는 사실을 전혀 모르고 있었다. 빨리 Java 진도를 나가면서 String에 대한 더 심화된 공부를 하는 게 필요할 것 같다.

 

 

다른 풀이

 

 

split과 repeat method를 이용해 푼 풀이다. 사실 split을 이용해 풀 수 있을 거라는 생각은 했는데, 아직 repeat method 부분을 공부하지 않았다. 왜 이렇게 모르는 method가 많은가... 이제 배웠으니 머릿속에 저장하면 된다.

 

 

배열의 유사도

 

 

 

 

이건 쉽다. 이중 for 반복문을 이용해 검색만 잘 하면 될 것 같다.

 

 

 

 

일부러 간결한 반복문을 써 보려 했더니 역시 익숙하지 않아서 선언도 제대로 안 하는 실수를 했다...

 

 

 

 

변수명도 바꿔서 선언을 하고 다시 돌렸다. 그런데 answer 카운터가 작동을 전혀 안 하나 보다.

 

 

 

 

s1과 s2가 같은 객체참조하지 않기 때문에 ==이 아니라 equals method를 이용해야 한다. 알고 있는데도 String 문제를 잘 안 풀었다 보니 이렇게 틀리게 된다. 골고루 많이 풀어보는 게 중요하다. 그런데 일부러 String 문제를 안 풀었던 건 아니다. 그냥 그동안 다른 문제들만 몰려 있었을 뿐...

 

 

다른 풀이

 

 

음... contains밖에 모르겠다. method 공부가 되고 나면 다시 분석해 봐야겠다.

 

 

문자열 뒤집기

 

 

 

 

어제 풀었던 배열 뒤집기와 비슷한 문제다. 마지막 문자열부터 거꾸로 내려오면서 answer에 대입해 주면 될 것이다.

 

 

 

 

조건문에 또 length field를 썼다ㅠㅠ

 

 

 

 

요즘 Java 진도를 나가지 못해서 답답했는데 이제 여건이 되어 진도를 나갈 수 있을 것 같다. 코딩테스트 문제를 풀 때마다 마음이 점점 급해진다. 빨리 심화된 문법들을 익혀 코딩테스트에 써 먹고 싶다.

 

 

 

 

무려 71,600등이 돠었다. 이제 내 위로 71,599명밖에 없다 ㄷㄷ;

 

눈가가 촉촉해진다.