본문 바로가기
Programming/Cos Pro 1급

Cos Pro 1급 - 샘플 문제 풀이 4차 5번 (문자열 뒤집기)

by 우공80 2022. 10. 29.
728x90

규칙에 맞는 숫자 만들기

문제 지문 #5


다음과 같이 새로운 숫자를 생성할 때, n번째 생성할 숫자를 구하려고 합니다.

1. 첫 번째 수는 1입니다.
2. 다음수를 1의 자리에 추가합니다.
3. 만든 숫자를 뒤집습니다.
4. 숫자 1부터 9까지 추가하면서 2, 3번째 단계를 반복합니다.
5. 숫자 9까지 추가했다면 다시 숫자 1부터 추가합니다.

n이 매개변수로 주어질 때, n번째로 생성할 수를 문자열 형태로 return 하는 solution 메서드를 작성하려 합니다. 위 구조를 참고하여 코드가 바르게 동작하도록 빈칸을 채워주세요.


#####매개변수 설명

숫자 n이 solution 메소드의 매개변수로 주어집니다.

  • n은 1 이상 1,000 이하인 자연수입니다.

#####return값 설명

solution 메소드는 n번째 수를 문자열 형태로 return 합니다.


#####예시

n return
5 "53124"

#####예시 설명

첫 번째 숫자: 1
두 번째 숫자: 21
세 번째 숫자: 312
네 번째 숫자: 4213
다섯 번째 숫자: 53124

따라서 답은 "53124"입니다.

728x90

 

혼자 풀이


빈 칸 채우기 문제입니다.
다른 문제들과 다르게 한 줄을 통째로 작성해야 합니다. number를 받아서 reverseNumber를 반환하는 함수 이므로 for문과 charAt() 함수를 이용해서 number의 끝자리부터 읽어서 reverseNumber에 넣어주면 됩니다.

. solution 함수에서 빈칸 채우는 부분은 1~9를 반복해서 붙여주는 부분이므로, i를 9로 나눈 나머지를 붙여주면 됩니다. 저는 그냥 i를 넣고 했는데, 예시문에서는 오류가 안 나서 정답인 줄 알았는데, 정답 보고 틀린 것을 알았네요.

그리고, 이 부분에서 +1을 해주는 것은 for문에서 1부터 n까지가 아니라 0부터 n-1까지 루프를 돌기 때문에 +1 해주는 것이 필요합니다. 1부터 n까지 루프를 도는 문제에 자주 나오므로 이 부분을 놓치지 말아야겠습니다. 

class Main {
	//문자열을 뒤집는 함수
    public String reverse(String number) {
        String reverseNumber = "";
        for(int i = number.length()-1; i >= 0; i--)
			//@@@
            reverseNumber+=number.charAt(i); //for문으로 입력된 number의 역순으로 붙여주면 됨
        return reverseNumber;
    }
	//규칙에 따라 숫자열을 생성
    public String solution(int n) {
        String answer = "";
        for(int i = 0; i < n; i++) {
            // answer += Integer.toString(@@@);
            //1~9를 반복하므로 i를 9로 나눈 나머지를 붙여줌
            answer += Integer.toString(i%9+1); // n까지의 자연수가 들어가야 하니까 +1해야함
            answer = reverse(answer);
        }
        return answer;
    }
	// 아래는 테스트케이스 출력을 해보기 위한 main 메소드입니다.    
    public static void main(String[] args) {
        Main sol = new Main();
        int n = 5;
        String ret = sol.solution(n);
        
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("solution 메소드의 반환 값은 \"" + ret + "\" 입니다.");
    }
}

 

정답


혼자 풀이와 정답이 동일합니다.

실습은 아래 참고


2022.10.25 - [Programming/Cos Pro 1급] - Cos Pro 1급 공부 사이트 추천 - 구름 에듀(https://edu.goorm.io/)

 

Cos Pro 1급 공부 사이트 추천 - 구름에듀(https://edu.goorm.io/)

구름 EDU??? YBM 공식 사이트에서 받은 문제 지문/문제 코드/정답 코드를 intellij에서 공부하다가 후배 추천으로 구름 에듀를 알게 되었습니다. 문제 지문 따로 문제 코드 따로 열어보는 게 여간 불

woogong80.tistory.com

728x90

댓글