백준 - 럭키 스트레이트 [18406]

노력하는 배짱이·2021년 1월 2일
0

백준 알고리즘

목록 보기
1/35
post-thumbnail

문제

[요약]

  • N개의 영어 단어가 주어짐
  • 각 알파벳 대문자를 0~9의 숫자 중 하나로 바꿔 N개의 수를 합하는 문제
  • 같은 알파벳은 같은 숫자로 바꿔야함, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안됨
  • N개의 단어가 주어질 때 그 수의 합을 최대로 만들기

입력

첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 10개이고, 수의 최대 길이는 8이다. 서로 다른 문자는 서로 다른 숫자를 나타낸다.

출력

첫째 줄에 주어진 단어의 합의 최댓값을 출력한다.

풀이

해당 문제는 각 자릿수를 비교하여 해결해 나가면 된다. 처음 N을 문자열로 받아 문자열 길이에 따른 각 자릿수의 합을 구했다.

문제에서 짝수의 N만을 입력으로 주어진다 하였으니 ( N 길이 / 2 ) 를 해서 손쉽게 구할 수 있다.

소스

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String nStr = sc.nextLine();
		
		int sum1 = 0, sum2 = 0;
		
		int len = nStr.length();
		
		for(int i=0; i<len; i++) {
			if(i < len / 2) {
				sum1 += nStr.charAt(i)-'0';
			}else {
				sum2 += nStr.charAt(i) - '0';
			}
		}
		
		if(sum1 == sum2) {
			System.out.println("LUCKY");
		}else {
			System.out.println("READY");
		}

	}

}

0개의 댓글