[알고리즘] 백준 13410 거꾸로 구구단

채상엽·2022년 5월 10일
0

Algorithm

목록 보기
1/13

layout: post
title: "백준 13410 거꾸로 구구단"
date: 2022-02-03T00:00:00-00:00
author: sangyeop
categories: Algorithm


백준 13410 거꾸로 구구단


https://www.acmicpc.net/problem/4641

실패

  • 구구단 이라는 부분에 집중해서 최대 두 자리 숫자까지만 고려하면 된다고 생각했음, 그러나 범위가 1~1000까지
    • 두 숫자를 바꾸기 위해서 십의 자리는 " / " 를 이용해서 구하고, 일의 자리는 " % "를 이용해서 구한 뒤 문자열로 바꿈

성공

  • 숫자의 자리수가 많아도 반례가 생기지 않도록 해야함
    • 구구단 값을 넣은 배열에서 각 원소의 값을 String으로 바꿔 준 뒤 charAt() 을 이용해 거꾸로 한 글자씩 추출해 다시 문자열 하나로 합침
    • 이후 새로운 배열에 이 문자열을 int로 파싱하여 넣어줌
    • Max 값 비교를 통해서 최대 값을 찾아냄



import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int K = scanner.nextInt();

        int[] arr = new int[K];

      	// 구구단값을 배열에 저장
        for (int i = 1; i <= K; i++) {
            arr[i-1] = N * i;
        }

        int[] arrReverse = new int[K];

        for (int i = 1; i <= K; i++) {
            String s = String.valueOf(arr[i - 1]);// 저장된 구구단 값 String으로 변경
            char[] sChars = new char[s.length()];	// 한 글자씩 떼 내서 역순으로 재 배열 해주기 위해 sChars[] 선언

            int index = 0;

            for (int j = s.length() - 1; j >= 0; j--) {
                sChars[index] = s.charAt(j); // sChars[]에 구구단 값 뒤에서 부터 추출하여 한 글자씩 저장
                index++;
            }

            String reverseNumString = "";	// sChars[]에 저장된 값 하나의 문자열로 합쳐주기 위해 String 변수 선언

            for (int j = 0; j < sChars.length; j++) {
                reverseNumString += sChars[j];
            }
            arrReverse[i - 1] = Integer.parseInt(reverseNumString);
        }

        int max = 0;

        for (int i = 0; i < arrReverse.length; i++) {	// 값 비교 통해서 최대값 출력
            if (max < arrReverse[i]) {
                max = arrReverse[i];
            }
        }
        System.out.println(max);
    }
}
profile
프로게이머 연습생 출신 주니어 서버 개발자 채상엽입니다.

0개의 댓글