728x90

안녕하세요 요즘 국비학원에서 프로젝트를 진행하는중에 너무 정신이 없어서 업로드를 못하고있었습니다. 

 

조만간 문제풀이 외에도 프로젝트 진행하면서 쓰이는 코드들 또한 정리해서 올려보겠습니다. 

 

1157번 문제 또한 아스킷 코드를 사용해서 풀수 있는 문제입니다. 

 

 

예제 입력2 번을 보게 되시면 zZa 입력을 했는데 출력은 Z로 나오게 됩니다. 문제에서 보시면 알겠지만 대소문자를 구별하지 않습니다.  여기에서 힌트를 얻으실수 있을거라고 판단됩니다. 

 

import java.util.Scanner;

public class solution1157 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] arr = new int[26]; //이미 영단어의 갯수는 26개 이기때문에 array로 값을 주어줍니다.
		String s = sc.next();
		
		for(int i =0; i<s.length(); i++) { //input값의 길이만큼 for문을 돌립니다. 
			
			if('A' <=s.charAt(i) && s.charAt(i)<='Z') {//charAt을 통해서 대문자인지 소문자인지 구별합니다. 
				arr[s.charAt(i)-'A']++;//A만큼 수를 빼줍니다. 0으로 시작될겁니다. 
				
			}else {
				arr[s.charAt(i)-'a']++; //여기서는 소문자 a값 만큼 빼주빈다. 
			}
		}
		int max=0;
		char result='?';
		
		for(int i =0; i<26; i++) { //알파벳 크기 만큼 반복문을 돌리면서 array에 카운팅된 값이 맥스값보다
        //큰지 작은지 결정해서 max값을 계속해서 바꾸줍니다.(array값이 max값보다 크면 
			if(arr[i]>max) {
				max=arr[i];
				result=(char)(i+65);//'A'를 대신 쓸수있다.
				
			}else if(arr[i]==max) { //동일한 값이 나온다면 ?를 출력받게 해줍니다. 
				result='?';
				
			}
		}
		System.out.println(result);
	}
}

 

 

대문자와 소문자를 구분하는 문제입니다. 아스킷코드를 사용합니다. 

문자열관련 문제가 나온다면 꼭!! 아스킷코드를 생각해주시는게 중요합니다.!! 항상 문자열은 아스킷 코드를 생각해주세요 ㅎㅎㅎ

728x90
복사했습니다!