[리트코드/JAVA] 771. Jewels and Stones
leetcode.com/problems/jewels-and-stones/
# 문제설명
You're given strings jewels representing the types of stones that are jewels, and stones representing the stones you have. Each character in stones is a type of stone you have. You want to know how many of the stones you have are also jewels.
Letters are case sensitive, so "a" is considered a different type of stone from "A".
String 타입의 보석 종류가 담긴 jewels와 원석의 종류가 담긴 stones가 있습니다.
jewels와 stones의 값 중에서 총 몇 개의 보석이 같은지 확인하세요.
한 글자라도 같으면 같은 보석으로 간주하며 "a"와 "A"를 구분하므로 다른 원석으로 간주합니다.
# 제한사항
- 1 <= jewels.length, stones.length <= 50
- jewels and stones consist of only English letters.
- All the characters of jewels are unique.
# 입출력 예
Example 1:
Input: jewels = "aA", stones = "aAAbbbb"
Output: 3
Example 2:
Input: jewels = "z", stones = "ZZ"
Output: 0
# 풀이
class Solution {
public int numJewelsInStones(String jewels, String stones) {
String[] spJewels = jewels.split("");
String[] spStones = stones.split("");
int output = 0;
for(int i=0; i<spJewels.length; i++) {
for(int j=0; j<spStones.length; j++) {
if(spJewels[i].equals(spStones[j])) output++;
}
}
return output;
}
}
#3, 4
입력받은 jewels와 stones의 문자열을 한 글자씩 분리하여 String배열에 각각 담아둡니다.
#6
총 몇 개의 원석이 동일한지 리턴할 int형 변수(output)를 선언합니다.
#7
두 개의 for문으로 몇 개의 원석이 같은지 계산합니다. 첫 번째 for문은 jewels 인덱스 위치를 잡아줍니다.
한 글자씩 분리해서 담아둔 spJewels에서 "a"를 spStones의 전체 배열과 비교하고, 두 번째 턴에서 "A"를 비교하는 식으로 진행됩니다.
#8
두 번째 for문은 spStones의 인덱스를 잡아줍니다. 안에 if문으로 spJewels와 spStones의 값을 비교합니다.
값이 동일할 때 마다 output에 +1을 합니다.
#15
for문이 종료되면 output을 리턴합니다.