IT/Programmers
[Programmers/코딩테스트 연습] 순서쌍, 개미군단, 모스부호(1) Java
안선생 Dr.Ahn
2022. 12. 5. 08:14
728x90
반응형
순서쌍 (Java)
n이 나누어 떨어지는 수(약수)의 개수 구하기
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n ; i++) {
if(n%i == 0) answer++;
}
return answer;
}
}
Stream 이용하기 #IntStream #filter() #count()
import java.util.stream.IntStream;
class Solution {
public int solution(int n) {
int answer = 0;
answer = (int)IntStream.rangeClosed(1,n).filter(i -> n%i == 0).count();
return answer;
}
}
*import 잊지말자
개미군단 (Java)
stream을 이용한 뭔가가 있을 줄 알고 이것저것 해봤는데 다른 사람들도 결국 비슷하게 풀었더라.
class Solution {
public int solution(int hp) {
int answer = 0;
int[] ant = {5, 3, 1};
for(int i = 0; i < ant.length; i++) {
answer += hp/ant[i];
hp = hp%ant[i];
}
return answer;
}
}
모스부호 (1) (Java)
class Solution {
public String solution(String letter) {
String answer = "";
String[] morse = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
String[] ltr = letter.split(" ");
for (int i = 0; i < ltr.length; i++) {
for (int j = 0; j < morse.length; j++) {
if(ltr[i].equals(morse[j])) {
answer += (char)(j + 97);
}
}
}
return answer;
}
}
더 간단한 방법을 찾고 싶었는데..
다른 사람 풀이가 더 길어서 내 코드에 만족하기로 했다.
아스키 코드를 잘 이용하지 않았는데, 코딩테스트 입문 예제를 통해 자주 사용하게 되어, 좋은 연습이 된다.
728x90
반응형