본문 바로가기
백준

[백준] 17202번 : 핸드폰 번호 궁합 – JAVA [자바]

by Hongwoo 2022. 4. 21.
반응형

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

 

17202번: 핸드폰 번호 궁합

어린시절 다들 한 번씩은 이름으로 궁합을 본 적이 있을 것이다. 이것과 비슷한 방식으로 중앙대학교에는 핸드폰 번호 궁합을 보는 것이 유행이라고 한다. 핸드폰 번호 궁합을 보기 위해서는

www.acmicpc.net

 


  • 문제

 


  • 문제 풀이

백준 17202번 핸드폰 번호 궁합은 DP 및 구현하는 브론즈 1 난이도의 문제이다. 이 문제는 중앙대학교의 2019 NPC (Newbie Programming Contest)에 나온 문제였다.

 

이 문제에서는 전화번호 2개가 주어진다. 그리고 이 두 전화번호의 궁합을 구하면 된다. 전화번호를 각각 A, B라고 하겠다. 전화번호의 궁합을 구하는 법은 다음과 같다 : A부터 시작하여 A, B에서 한 숫자씩 번갈아가면서 적는다. 그리고 인접한 두 숫자끼리 더한 값의 일의 자리를 두 숫자의 아래에 적어나가면서 마지막에 남는 숫자 2개로 궁합률을 구하게 된다.

 

예시를 한번 보겠다.

 

EX) A = 74759336, B = 36195974

우선 전화번호에서 한 숫자씩 번갈아가면서 적으면 7346715995393764가 된다.

 

여기서 인접한 숫자를 더하고 나머지 10을 구해주면 된다. 그럼 070386484822030이 된다. 이 방법을 숫자가 2개로 줄어들 때까지 하면 26을 얻게 된다.

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s1 = br.readLine();
        String s2=  br.readLine();
        String s = "";
        for (int i = 0; i < s1.length(); i++) {
            s += s1.charAt(i);
            s += s2.charAt(i);
        }
        while (s.length() > 2) {
            String S = "";
            for (int i = 0; i < s.length()-1; i++) {
                int n = Character.getNumericValue(s.charAt(i)) + Character.getNumericValue(s.charAt(i+1));
                S += Integer.toString(n%10);
            }
            s = S;
        }
        System.out.print(s);
    }
}

 


  • 후기

문제 태그에서는 DP도 같이 태그 되었지만 굳이 DP를 안 써도 풀 수 있는 문제였다.

 

반응형

댓글