안녕하세요 오늘은 5단계를 풀어보겠습니다 ~
✏️ 문제 번호 : 27866
문자와 문자열
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
int i = Integer.parseInt(br.readLine());
System.out.println(S.charAt(i - 1));
}
}
문자열 S에서 특정 위치의 문자를 가져오기 위해
charAt 메서드를 사용했습니다.
✏️ 문제 번호 : 2743
단어 길이 재기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
System.out.println(s.length());
}
}
✏️ 문제 번호 : 9086
문자열
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
String inputString = br.readLine();
// StringBuilder를 사용해 첫 문자와 마지막 문자 연결
StringBuilder sb = new StringBuilder();
sb.append(inputString.charAt(0)); // 첫 문자 추가
sb.append(inputString.charAt(inputString.length() - 1)); // 마지막 문자 추가
// 결과 출력
System.out.println(sb.toString());
}
}
}
StringBuilder 객체 sb를 생성하고 append() 메서드를 사용해 첫 문자와 마지막 문자를 추가했습니다.
마지막으로 sb.toString()을 호출해 연결된 문자열을 출력했습니다.
✏️ 문제 번호 : 11654
아스키 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
char c = br.readLine().charAt(0);
System.out.print((int) c);
}
}
✏️ 문제 번호 : 11720
숫자의 합
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String s = br.readLine();
int sum = 0;
// 문자열의 각 문자를 숫자로 변환하여 합산
for (int i = 0; i < N; i++) {
sum += s.charAt(i) - '0'; // 문자를 숫자로 변환
}
System.out.print(sum);
}
}
위 문제의 포인트는
문자열로 숫자를 입력받기 입니다.
숫자 리스트를 String 형태로 입력 받아서 문자열에서 각 문자를 숫자로 변환하기 위해,
s.charAt(i) - '0'을 사용합니다.
동작 과정
1. 문자열"12345"에서 s.charAt(i)를 사용해 각 문자를 하나씩 가져옵니다
s.charAt(0) → '1'
s.charAt(1)→'2'
s.charAt(2) → '3'
...
2. 가져온 문자에서'0'을 뺍니다
'1' - '0' → 1
'2' - '0'→2
'3' - '0' → 3
...
3. 변환된 숫자를sum에 더합니다
sum = 0 + 1 = 1
sum = 1 + 2 = 3
sum = 3 + 3 = 6
...
만약, - '0'을 하지 않는다면?
'1'의 아스키 값은 49이므로, 숫자 1로 변환되지 않고 49로 처리됩니다.
따라서, 결과는 잘못된 합계가 출력됩니다.
✏️ 문제 번호 : 10809
알파벳 찾기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
for (char c='a';c<='z';c++){
//알파벳 위치
int index = s.indexOf(c);
// 위치 출력
System.out.print(index + " ");
}
}
}
위 코드에서 s.indexOf(c)를 사용해서
알파벳 c가 문자열 s에서 처음 등장하는 위치를 반환했습니다.
만약 c가 s에 포함되지 않은 경우 -1을 반환합니다.
indexOf ?
Java에서 문자열이나 배열에서 특정 값의 첫 번째 위치(인덱스)를 반환하는 메서드입니다.
만약 값이 해당 문자열이나 배열에 존재하지 않으면 -1을 반환합니다.
동작 과정
'a': indexOf('a') → 0
'b': indexOf('b') → 1
'c': indexOf('c') → -1 (포함되지 않음)
'd': indexOf('d') → -1
...
'o': indexOf('o') → 5
✏️ 문제 번호 : 2675
문자열 반복
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i=0;i<T;i++){
String[] input = br.readLine().split(" ");
int R = Integer.parseInt(input[0]);
String S=input[1];
StringBuilder result = new StringBuilder();
for(int j=0;j<S.length();j++){
for(int k=0;k<R;k++){
result.append(S.charAt(j));
}
}
System.out.println(result);
}
}
}
✏️ 문제 번호 : 1152
단어의 개수
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine().trim(); // 앞뒤 공백 제거
// StringTokenizer로 단어 분리
StringTokenizer st = new StringTokenizer(input, " ");
System.out.println(st.countTokens()); // 단어 개수 출력
}
}
✏️ 문제 번호 : 2908
상수
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
String a = input[0];
String b = input[1];
int reverseA = reverseNumber(a);
int reverseB = reverseNumber(b);
System.out.println(Math.max(reverseA, reverseB));
}
private static int reverseNumber(String num) {
String reversed = "";
for (int i = num.length() - 1; i >= 0; i--) {
reversed += num.charAt(i); // 문자열의 뒤에서 앞으로 읽음
}
return Integer.parseInt(reversed); // 정수로 변환
}
}
✏️ 문제 번호 : 5622
다이얼
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
int total = 0;
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if ("ABC".indexOf(c) != -1) total += 3;
else if ("DEF".indexOf(c) != -1) total += 4;
else if ("GHI".indexOf(c) != -1) total += 5;
else if ("JKL".indexOf(c) != -1) total += 6;
else if ("MNO".indexOf(c) != -1) total += 7;
else if ("PQRS".indexOf(c) != -1) total += 8;
else if ("TUV".indexOf(c) != -1) total += 9;
else if ("WXYZ".indexOf(c) != -1) total += 10;
}
System.out.println(total);
}
}
indexOf를 사용해 해당 문자가 특정 문자열에 포함되어 있는지 확인하여,
입력 값에 해당하는
값이 있을 경우, 0을 반환
값이 없을 경우, -1을 반환하는 로직을 세웠습니다.
✏️ 문제 번호 : 11718
그대로 출력하기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str;
while((str = br.readLine()) !=null){
System.out.println(str);
}
}
}
네..~
이렇게 오늘도 백준 문제를 풀어봤습니다
내일은 심화 과정인데 과연 어떤 문제가 나올지 ...!! 😉
저는 내일 뵙도록 하겠습니다 !!!
오코완
(오늘도 코테 공부 완료)