Hayden's Archive
[알고리즘] 백준 - 10808번 : 알파벳 개수 / 10820번 : 문자열 분석 / 11655번 : ROT13 본문
알고리즘 문제 출처 : https://www.acmicpc.net/problem/10808
내가 작성한 코드
아스키코드를 활용하면 쉽게 풀 수 있는 문제
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] charArr = br.readLine().toCharArray();
int[] alphabet = new int[26];
for(int i=0; i<charArr.length; i++) {
alphabet[((int)charArr[i])-97]++;
}
for(int i=0; i<alphabet.length; i++) {
bw.write(alphabet[i]+" ");
}
bw.flush();
bw.close();
}
}
알고리즘 문제 출처 : https://www.acmicpc.net/problem/10820
내가 작성한 코드
Scanner 객체의 hasNextLine() 메소드를 사용하여 입력값이 더 이상 없으면 종료하게 한다.
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()) {//입력값이 있는 동안 실시
int letterS = 0;
int letterB = 0;
int number = 0;
int space = 0;
char[] temp = sc.nextLine().toCharArray();
for(int i=0; i<temp.length; i++) {
if(temp[i]==' ') {//공백이라면
space++;
}else if((int)temp[i]>=65 && (int)temp[i]<=90){//대문자라면
letterB++;
}else if((int)temp[i]>=97 && (int)temp[i]<=122) {//소문자라면
letterS++;
}else {//숫자라면
number++;
}
}
System.out.println(letterS+" "+letterB+" "+number+" "+space);
}
}
}
알고리즘 문제 출처 : https://www.acmicpc.net/problem/11655
내가 작성한 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] inputVal = sc.nextLine().toCharArray();
StringBuilder sb = new StringBuilder();
for(int i=0; i<inputVal.length; i++) {
int num = (int)inputVal[i];
if(65<=num && num<=90) {
int alphabet = 65+((num-65+13)%26);
sb.append((char)alphabet);
}else if(97<=num && num<=122) {
int alphabet = 97+((num-97+13)%26);
sb.append((char)alphabet);
}else {
sb.append(inputVal[i]);
}
}
System.out.println(sb);
}
}