#백준 18406
https://www.acmicpc.net/problem/18406
- 럭키 스트레이트라는 기술은 특정 조건을 만족할 때 사용할 수 있다.
- 캐릭터의 현재 점수를 N이라 한다.
- N을 자릿수 기준으로 반으로 나눈다.
- 왼쪽 부분의 각 자릿수 합과 오른쪽 부분의 각 자릿수 합이 동일하면, 기술 사용의 조건을 만족한다.
- 예시 점수 N = 123,402
- 기술 사용 조건을 만족한다면 "LUCKY"를 출력한다.
- 기술 사용 조건을 만족하지 않는다면 "READY"를 출력한다.
- N의 자릿수는 항상 짝수로 주어진다. 즉, 항상 반으로 나눌 수 있다.
입력
- 첫째 줄 : 123402
출력
- 첫째 줄 : LUCKY
접근
- 럭키 스트레이트라는 기술은 특정 조건을 만족할 때 사용할 수 있다.
-> 점수를 main 함수에서 입력 받는다.
- 캐릭터의 현재 점수를 N이라 한다.
- N을 자릿수 기준으로 반으로 나눈다.
-> 입력 문자열을 정수 배열에 한자리씩 넣는다. 배열의 길이를 구한 후, 반씩 덧셈한다.
- 왼쪽 부분의 각 자릿수 합과 오른쪽 부분의 각 자릿수 합이 동일하면, 기술 사용의 조건을 만족한다.
-> 인덱스 [0]에서 인덱스[배열 길이의 절반-1] 까지 더한다. 인덱스 [배열길이의 절반]에서 인덱스[배열 길이]까지 더한다.
-> 두 값이 동일한지 비교한 후, 결과에 따라 출력을 달리한다.
- 예시 점수 N = 123,402
- 기술 사용 조건을 만족한다면 "LUCKY"를 출력한다.
- 기술 사용 조건을 만족하지 않는다면 "READY"를 출력한다.
- N의 자릿수는 항상 짝수로 주어진다. 즉, 항상 반으로 나눌 수 있다.
의문점
입력된 N의 자릿수를 어떻게 구할 수 있지?
배열에 넣은 후, 배열 길이를 반환받으면 딱 N의 자릿수만큼 배열 길이가 나올까?
배열을 먼저 선언하지 않고, 수를 입력 받은 뒤 선언하면 된다.
1. 수 입력
2. 수 -> 문자열 변환 -> 길이 구하기
3. 구한 길이의 크기에 맞게 정수 배열 만들기
또는, 처음부터 정수를 문자열의 형태로 입력 받는 방법도 있다.
그러나 코드의 가독성을 위해 단계가 조금 더 많지만, 위의 방법을 택하도록 하겠다.