문제
프로그램은 공백을 기준으로 짝수 번째 문자를 대문자로, 홀수 번째 문자를 소문자로 바꾼다.
먼저 메인에서 문자열을 입력 받는다. 문자열의 짝수/홀수 번째 수를 판별하기 위한 카운트 변수를 선언 및 초기화 한 이후의 for문에서 공백을 만나면, 카운트를 0으로 초기화 한다. 공백을 만나지 않으면, 짝수 번째 인지 홀수 번째 인지 카운트 변수를 통해 if/else로 구분한다. 그리고 짝수 번째의 문자는 대문자로 바꾸어 스트링 버퍼에 추가하고, 홀수 번째 문자는 소문자로 변환해 추가한다. 그리고 카운트를 증가 시켜 다음 문자의 번째 수를 저장한다. for문이 종료 되면, answer에 이어 붙인 문자들을 담아 반환한다.
실행 결과 :
위 메인에 대한 실행 결과이다.
대소문자로 변환하라는 문제를 읽고 toUpperCase()와 toLowerCase()를 사용해야겠다는 생각이 들었다. 그리고 공백을 기준으로 짝수 번째, 홀수 번째를 나누라는 것에 조금 고민을 했다. 그러다 자리 번째 수를 카운트로 세고, 공백을 기준으로 초기화를 하면 되겠구나 하는 생각을 하게 되었다.
이 문제에서 가장 고민을 했던 것 중 하나가 클래스 이름이었는데, 처음에는 StrangeString이라고 지었었다. 그런데 계속 생각해도 마음에 안 들어서 다른 사람들은 클래스 이름을 어떻게 지었나 하고 검색해 보았다. 그런데 대부분 toWeirdCase라는 참신한 이름을 사용하고 있었다. 사전적 정의를 보니 strange는 낯설면서 이상한 의미인 반면, weird는 이상해서 이상한 의미라고 한다. 상황적으로나 비례적으로나 toWeirdCase가 적절하기에 이름을 그렇게 바꾸었다. 클래스 이름을 짓는 것부터 초보자인지 아닌지 판별할 수 있구나 하는 생각이 들었다.
출처 : https://programmers.co.kr/learn/courses/30/lessons/12930
'코딩 테스트 문제 > 프로그래머스' 카테고리의 다른 글
콜라츠 추측 (0) | 2018.09.17 |
---|---|
서울에서 김서방 찾기 (0) | 2018.09.15 |
완주하지 못한 선수 (0) | 2018.09.14 |
정수 제곱근 판별 (0) | 2018.09.14 |
시저 암호 (0) | 2018.09.13 |