Java Challenge
문자열
백준 27866
- 단어 S와 정수 i가 주어질때 S의 i번째 글자를 출력하는 프로그램을 작성하시오
package 문자열;
import java.util.Scanner;
public class BOJ27866 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
int i = scanner.nextInt();
System.out.println(s.charAt(i-1));
}
}
백준 2743
- 알파벳으로만 이루어진 단어를 입력받아.그 길이를 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ2743 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
System.out.println(s.length());
}
}
백준 9086
- 문자열을 입력으로 주면 문자열의 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ9086 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
String s;
for(int i = 0; i < count; i++){
s = scanner.next();
System.out.print(s.charAt(0));
System.out.print(s.charAt(s.length()-1));
System.out.println();
}
}
}
백준 11720
- N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ11720 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int answer = 0;
int count = scanner.nextInt();
String s = scanner.next();
String[]sp = s.split("");
for(String a:sp){
answer += (Integer.parseInt(a));
}
System.out.println(answer);
}
}
백준 10809
- 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Arrays;
import java.util.Scanner;
public class BOJ10809 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int [] arrs = new int[26];
Arrays.fill(arrs, -1);
String s = scanner.nextLine();
String []sp = s.split("");
for(int i = 0; i<sp.length;i++){
int idx = ((int)s.charAt(i)) % 97;
if (arrs[idx] == -1){
arrs[idx] = i;
}
}
for(int i = 0; i<arrs.length;i++){
System.out.print(arrs[i]+" ");
}
}
}
백준 2675
- 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ2675 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
for(int i = 0;i<count;i++){
int num = scanner.nextInt();
String s = scanner.next();
StringBuilder sb = new StringBuilder();
String[]sp = s.split("");
for(String a :sp){
for(int j = 0; j<num;j++){
sb.append(a);
}
}
System.out.println(sb);
}
}
}
백준 1152
- 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
StringTokenizer st = new StringTokenizer(s , " ");
System.out.println(st.countTokens());
}
}
- Split 보다 StringTokenizer를 이용해서 토큰의 개수를 세야한다.
백준 2908
- 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ2908 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StringBuilder a = new StringBuilder(scanner.next());
StringBuilder b = new StringBuilder(scanner.next());
a.reverse();
b.reverse();
int a_int = Integer.parseInt(String.valueOf(a));
int b_int = Integer.parseInt(String.valueOf(b));
if(a_int > b_int){
System.out.println(a_int);
}else {
System.out.println(b_int);
}
}
}
백준 5622
- 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ5622 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
int answer = 0;
for(int i =0; i<s.length();i++){
char a = s.charAt(i);
if(65 <= (int)a && (int)a <=67){
answer += 3;
} else if (68 <= (int)a && (int)a <=70) {
answer += 4;
} else if (71 <= (int)a && (int)a <=73) {
answer += 5;
} else if (74 <= (int)a && (int)a <=76) {
answer += 6;
} else if (77 <= (int)a && (int)a <=79) {
answer += 7;
} else if (80 <= (int)a && (int)a <=83) {
answer += 8;
} else if (84 <= (int)a && (int)a <=86) {
answer += 9;
} else if (87 <= (int)a && (int)a <=90) {
answer += 10;
}
}
System.out.println(answer);
}
}
백준 11718
- 입력 받은 대로 출력하는 프로그램을 작성하시오.
package 문자열;
import java.util.Scanner;
public class BOJ11718 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
String s = scanner.nextLine();
System.out.println(s);
}
}
}