일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 아이폰 비율
- 아이폰
- 구름TEST
- naver
- codility
- algorism
- iPhone
- 네이버구름
- Object-c
- 알고리즘
- 구름알고리즘
- Cordova
- java
- objective-c
- 헬스
- 코딩테스트
- 네이버알고리즘
- 코딩
- 안드로이드
- codemonkey
- goormtest
- android
- error
- 맥북
- ios
- 네이버
- 맥용
- Swift
- 아이폰 해상도
- code
- Today
- Total
그래오늘은이거야
[Java]goorm test(구름TEST) 알고리즘 algorithm 알파벳 빈도 구하기 본문
[Java]goorm test(구름TEST) 알고리즘 algorithm 알파벳 빈도 구하기
jinhongstar 2019. 8. 30. 15:06안녕하세요 Leo 입니다.
이번 소개해줄 알고리즘 사이트는 구름TEST 라는 사이트 인데요,
NHN에서 투자 받아 개발한 알고리즘 사이트 입니다.
회사면접 코딩테스트를 하는 유명한 사이트죠...
저는 IOS (Object-c , Swift) 위주로 개발을 하고 가끔 안드로이드 개발을 하는데요...
회사에서 Java 로 코딩테스트를 하라고 해서 ... 하라면 해야죠... 풀어봤습니다.
제가 20문제 이상 푼것 같은데 이걸 공유 해드리도록 하죠...
이 글이 누군가에겐 "약"이 되고 누군가에겐 "독"이 될 것이다.
개발자라면 적어도 기본 알고리즘 정도는 스스로 학습하여 풀어봐야 한다.참고로 코딩테스트 문제를 제출 한 심사위원 분도제 블로그에서 답을 확인 한다는 것을 역으로 알아두고 보세요!! ㅎㅎ
알고리즘 문제
문제 : 이 문제는 입력된 문장에 포함된 알파벳의 빈도를 구하고 출력하는 것이 목표입니다. 대소문자 구분없이 알파벳의 빈도를 구하는 프로그램을 작성하십시오.
입력
임의의 문장(최대 80자)
출력
알파벳 별 빈도 수
입/출력 예시
⋇ 입출력 형식을 잘 지켜주세요.
␣ : 공백
↵ : 줄바꿈
−⇥ : 탭
보기 입력 1
edu goorm io
출력 1
a : 0
b : 0
c : 0
d : 1
e : 1
f : 0
g : 1
h : 0
i : 1
j : 0
k : 0
l : 0
m : 1
n : 0
o : 3
p : 0
q : 0
r : 1
s : 0
t : 0
u : 1
v : 0
w : 0
x : 0
y : 0
z : 0
======================================================================================================
풀이
======================================================================================================
//Please don't change class name 'Main'
import java.util.Scanner;
import java.util.Arrays;
//생각하고 문제를 풀어보자 나의 논리는.
//1. 아스키 코드의 알파벳 자리를 생각한다.
//아스키 소문자 a - z (97-122) 이걸 반복문에 적용
//총 30개 영문자
//입력된 문자를 아스키 코드로 바꾸고 같은 숫자를 구한다.
//인터넷 검색하지 말고 직접하자!
//대소문자 구분없이 가 중요포인트
//equals 는 대소문자 구분함.
//equalsIgnoreCase 사용하면 대소문자 구분 없음 예전 Java 할때 개고생한거 기억남.
class Main {
public static void main(String[] args) {
String message;
Scanner scan = new Scanner(System.in);
message = scan.nextLine();
message = message.replace(" ", "");//공백 제거
String[] abcArray = message.split("");
String outputValue = "";
//a = 97 ~ z = 122
for(int j=0; j < abcArray.length; j++){
String alphabet = abcArray[j];
alphabet = alphabet.toLowerCase(); //대소문자 무조건 소문자로 치환
char[] charAbc = alphabet.toCharArray(); //String char로 형변환
//같은 알파벳 아스키 코드를 찾는다.
for(int i=97; i <= 122; i++){
if(i == ((int) charAbc[0])){
//같은 값을 string에 ,로 저장한다.
outputValue = outputValue + "," + Integer.toString(i);
}
}
}
//, 저장한 값을 split으로 나눠서 배열을 만든다.
String[] tryabcArray = outputValue.split(",");
//a-z 까지 문장을 만들면서 같은 값을 비교하여 개수를 센다.
for(int i=97; i <= 122; i++){
int count = 0;
for(int j=0; j < tryabcArray.length; j++){
//딱한 a-z까지 만들면서 같은 string값을 비교해서 같은 값이면 ++ 를 해준다.
if(tryabcArray[j].equals(Integer.toString(i))){
count++;
}
}
System.out.println(Character.toString ((char) i) +" : " + count);
}
}
}
참고로 저는 알고리즘 풀이 점수는 높은 점수는 아닙니다.
일단 푸는 거에 집중했습니다. 알고리즘에 정답은 없습니다.
더 좋은 알고리즘을 만들어 내는게 목표 입니다.
알고리즘에 대하여 더 이야기 하실분은 댓글남겨주세요!
구름TEST 화면
구름테스트, 구름TEST 가 지원하는 프로그래밍 언어
그 외 Scala, Pascal, Lua, Objective-C, Rust, Cobol, Clojure, Smalltalk, Dart, Haskell, Perl, Common Lisp, D, Erlang 등
구름테스트, 구름TEST 를 2019년 현재 적용중인 회사
'세상 개발 > Java(SpringFramework)' 카테고리의 다른 글
[Java]goorm test(구름TEST) 알고리즘 algorithm 16진수 (2) | 2019.08.30 |
---|---|
[Java]goorm test(구름TEST) 알고리즘 algorithm 가동 시간 예측하기 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 알고리즘 algorithm 공백 없애기 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 알고리즘 algorithm 약수 구하기 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 알고리즘 algorithm 피라미드 (0) | 2019.08.30 |