[Java] 주민번호 유효성 검사

EunBi Na·2024년 5월 28일
0

[Java] Coding Test

목록 보기
11/11

  링크텍스트

① 마지막 자리를 제외한 앞자리 수를 규칙에 맞게 곱한다.
② 규칙에 맞게 곱셈 연산을 수행한 결과를 모두 더한다.
③ 더해진 결과물을 11로 나누어 『나머지』를 구한다.
④ 11에서 나머지를 뺀 결과값을 구한다.
⑤ ④번째 에서 처리한 연산 결과가 주민번호를 구성하는 마지막 숫자와 일치하는지 비교한다

링크텍스트


public static boolean checkJumin(String juminNumber) {
	int [] chkarr = {2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5};
    int sum = 0
    
    for (int i = 0; i < 13; i++){
    	if( i == 6) {
        	continue;
        }
        sum += chkArr[i] + integer.parseint(JuminNumber.substring(i, (i+1)));
        }
        
        int num = 11 - (sum % 11);
        num = num % 10;
        
        if(num == Integer.parseInt(juminNumber.substring(13))){
        	return true;
        } else {
        	return false;
        }
}

2번째 자바 코드

import java.io.BufferedReader;
import java.io.InputStreamREader;
import java.io.IOException;

public class Test101
{	
	public static void main(String[] args) throws IOException
    {
    	BufferedREader br = new BufferedREader(new InputStreamREader(System.in));
        
        String str;
        
        int[] chk = {2, 3, 4, 5, 6, 7, 0, 8, 9, 2, 3, 4, 5};
        
        int tot = 0;
        
        System.out.print("주민번호 입력(xxxxxx-xxxxxxx) : ");
        str = br.readLine();
        
        if(str.length() != 14)
        {	
        	System.out.println(">> 입력오류");
            return;
        }
        

링크텍스트

1.아래 각 인덱스에 해당하는 값을 곱하여 모두 합칩니다.

합계 = (a2 + b3 + c4 + d5 + e6 + f7 + g8 + h9 + i2 + j3 + k4 + l5)

  1. 11에서 합계를 11로 나눈 나머지를 빼줍니다.

11 - ((a2 + b3 + c4 + d5 + e6 + f7 + g8 + h9 + i2 + j3 + k4 + l5) % 11))

  1. 10이상이 되면 10의 자리를 버립니다.

11 - ((a2 + b3 + c4 + d5 + e6 + f7 + g8 + h9 + i2 + j3 + k4 + l5) % 11)) % 10

  1. 결과값이 검증값(13)과 동일하면 오류가 없는 주민등록번호입니다.
profile
This is a velog that freely records the process I learn.

0개의 댓글