[HackerRank] Pangrams

아르당·2024년 1월 9일
0

HackerRank

목록 보기
62/109
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

팬그램은 알마벳의 모든 문자들이 포함된 문자열이다. 문장이 주어지고 영어 알파벳의 팬그램인지 결정해라. 대소문자를 무시해라. 해당 문장의 여부에 따라 "pangram" 또는 "not pangram"을 반환해라.

Example

s = 'The quick brown fox jumps over the lazy dog'

문자열은 영어 알파벳의 모든 문자를 포함해서 "pangram"을 반환한다.

Function Description

pangrams 함수를 완성해라. 만약 문자열이 팬그램이면 "pangram"을 반환해야한다. 그렇지 않으면 "not pangram"을 반환해야한다.
pangrams 함수는 아래와 같은 매개변수를 가지고 있다.

  • String s: 테스트할 문자열

Returns

  • String: "pangram" 또는 "not pangram"

Constraints

  • 0 < s의 길이 <= 10^3
  • s[i] ∈ {a-z, A-Z, space}

Solved

주어진 문자열을 순회하면서 각 문자가 어떤 문자인지 확인하면 쉽게 해결할 수 있다.
먼저 알파벳 유무를 확인할 정수형 배열을 생성한 다음 쉽게 풀기 위해 문자열 s를 소문자로 바꾸고 문자열 배열로 바꿔준다.

int[] intArr = new int[26];
char[] charArr = s.toLowerCase().toCharArray();

바꾼 문자열 배열을 순회하며 공백이 아닌 문자열은 해당 index의 값을 증가시킨다. 증가시키는 이유는 해당 알파벳이 사용됐는지 확인하기 위함이다.

for(char c : charArr){
	if(c != ' '){
		intArr[c - 'a']++;
	}
}

문자열을 모두 확인했으면 다시 한번 반복문은 통해 알파벳들의 값 중에 0이 있는지 확인한다. 0이 있다면 "not pangram"을 반환한다. 반복문을 무사히 빠져나왔다면 "pangram"을 반환한다.

for(int i : intArr){
	if(i == 0){
		return "not pangram";
	}
}
        
return "pangram";

All Code

public static String pangrams(String s) {
	int[] intArr = new int[26];
	char[] charArr = s.toLowerCase().toCharArray();

	for(char c : charArr){
		if(c != ' '){
			intArr[c - 'a']++;
		}
	}

	for(int i : intArr){
		if(i == 0){
			return "not pangram";
		}
	}

	return "pangram";
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글