Code Signal -Arcade
코드시그널
아케이드 문제 관련 풀이들을 구글링하면서 찾아가는 일지를 하나씩하나씩 기록하고자 합니당.
주로 자바 위주로 풀이를 올릴예정이고, 추가로 공부하고 있는 파이썬이나 코틀린, GO, 자바스크립트 더 나아가 스위프트까지...
되는대로 가능한대로 구글링하고 정답맞추면 바로 패스!!
이런식으로 좋은 코드이든 말든 짜집기한 결과물들을 개인적 소장을 위해 기록합니다. ^^
참고 사이트들은 아래에 링크로 남겨둘터이니 자세하고 더욱 깊은 내용들은 링크로 들어가보세요! \
Different Symbols Naive
다른 문자의 종류? naive라는 뜻이 순박한? 이런건데 솔직히 뭔말인지... 아시는 분은 댓글좀 ㅠㅠ
문제의 설명을 보니 이해가 간다.
주어진 문자열이 있다. 그리고 문자열에서 서로 다른 종류의 문자의 종류 수를 구하라는 것이다.
ex
cabca라고 하면 abc이렇게 세가지 종류의 문자가 있다. 그래서 리턴은 3이다.
뭐.. 별거 아니라고 생각하고 들어갔다 .
답안을 보자.
int differentSymbolsNaive(String s) {
int [] check = new int[26];
int result = 0;
for(int i =0; i< s.length(); i++){
check[s.charAt(i)-'a'] ++;
}
for(int i =0; i< check.length; i++){
if(check[i] != 0)result++;
}
return result;
}
일단 총 알파벳의 종류를 담아줄 배열을 선언한다. 총 알파벳 종류는 26가지 이므로, 사이즌 26으로 설정.
int [] check = new int[26];
그리고 결과 값을 리턴해줄 변수를 선언 int result = 0;
그리고 나서 반복문을 통해 , s라는 입력 문자열의 각 자리마다 알파벳 종류대로 카운트를 한다.
a 가 보이면 0번째 공간에 카운트를 +1 해주는 식으로,,
그리고 나서, result라는 공간에 Check배열에 0이 아닌 값들의 갯수를 카운트를 다시 해준다. 반복문을 통해서
그렇게 되면 result에는 총 문자의 종류의 갯수가 담기게 된다. 그것을 간단하게 리턴 하면 끝
이제 엘리트 분들의 답안을 감상하자...
JAVA
int absoluteValuesSumMinimization(int[] A) {
return (int) s.chars().distinct().count();
}
이 코드를 보고 charAt / distinct 의 기능을 다시 공부해야겠다고 느꼈다.
chars() 안이 비어있는 것을 보고 무슨 기능인가 싶었지만, 자세히는 뭔말인지 모르겠으나, 스트림을 변환을 해서 그값들을 카운트하거나 출력하는 데 사용하는 듯하다. 그냥 출력을 하면 유니코드의 코드로 쭈욱 출력되는 것을 알 수 있다.
Python3
def differentSymbolsNaive(s):
return len(set(s))
JS
function differentSymbolsNaive(s) {
return new Set(s).size
}
공감 버튼 눌러주시면 더욱 많은 포스팅을 올리는데 힘이 됩니다!
부탁드려요 돈드는거 아니잖아요~
'Algorithm > Java' 카테고리의 다른 글
#37_Code Signal Arcade >> Array Max Consecutive Sum (0) | 2020.03.04 |
---|---|
#35_Code Signal Arcade >> First Digit (0) | 2020.02.19 |
#34_Code Signal Arcade >> Extract Each Kth (0) | 2020.01.30 |