링크

 

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

 

18406번: 럭키 스트레이트

첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다.

www.acmicpc.net


문제

 


풀이

 

* 입력 받는 자릿수는 짝수 형태로만 주어진다.

짝수라는 말은 전체 수가 짝수가 아니라 자릿수가 짝수 입니다.

 

 

첫 번째 예제

123402를 입력 받았을 때

123402 의 자릿수는 6 이라서 짝수.

입력 받은 자릿수를 반반 나누어 합산.

 

*절반 왼쪽

1 + 2 + 3 = 6

 

*절반 오른쪽

4 + 0 + 2 = 6

 

왼쪽과 오른쪽 합이 둘 다 6이므로 결과는 같다.

결과가 같으면 "LUCKY" 라는 문자열 반환.

 

 

 

두 번째 예제

7755 의 자리수는 4 라서 짝수

입력 받은 자릿수를 반반 나누어 합산.

 

*절반 왼쪽

7 + 7 = 14

 

*절반 오른쪽

5 + 5 = 10

 

왼쪽 합 : 14

오른쪽 합 : 10

 

14 와 10은 같지 않음.

왼쪽 합과 오른쪽 합이 같지 않으면 "READY" 라는 문자열 반환.

 


받은 숫자 자릿수를 절반씩 나누어서 합산을 한 뒤 비교해보는 방식으로 풀었습니다.

 

위의 로직 구현

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
 
	/**
	 * 럭키 스트레이트
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str 	= br.readLine();
		int count 	= str.length();
		int left	= 0;
		int right	= 0;
		for (int i = 0; i < count/2; ++i) {
			left += (str.charAt(i));
		}
		for (int i = count/2; i < count; ++i) {
			right += (str.charAt(i));
		}
		System.out.println((left == right ? "LUCKY":"READY"));
	}
}

 

후기

* 난이도 (5점 만점)

5 : 풀 줄 알면 기업 코딩테스트는 문제 없음.

4 : 평균적인 기업 코딩테스트의 중간 이상.

3 : 평균적인 기업 코딩테스트의 쉬운 문제 .

2 : 알고리즘 문제를 연습하고 있다면 풀 수 있는 문제.

1 : 시간이 오래 걸리지 않고, 누구나 풀 수 있는 문제.

 

난이도는 매우 쉬운 편이었으며 for문을 사용할 때 길이를 지정해서 사용할 줄 알면 어렵지 않다.

+ Recent posts