코딩테스트 기초 - Day 2 : 출력, 연산, 문자열 조작
문제 1. 덧셈식 출력하기
문제: 두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.
입력: 4 5
출력: 4 + 5 = 9정답:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + " + " + b + " = " + (a + b));
}
}획득: 딱히 획득할만한게 없음 출력할 때 "+" 잘 쓰자
System.out.printf("%d + %d = %d", a,b,a+b);위와 같이 작성 가능
문제 2. 문자열 붙여서 출력하기
문제: 두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다. 입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.
입력: apple pen
출력: applepen정답:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
System.out.printf(a + b);
}
}또는
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));
System.out.print(br.readLine().replaceAll(" ",""));
}
}획득:
- System.out.printf()를 쓰면 서식 문자(%d, %s)을 이용가능, 줄바꿈 없이 출력
- BufferedReader: Scanner대신 사용가능
- InputStreamReader: 바이트(Byte)를 문자(Character)로 바꿔줌 예) char('a', 'p', 'p', 'l', 'e')
- readLine(): 줄단위로 조회(줄바꿈으로 구분)
- replaceAll(): 문자열.replaceAll("바꿀 대상", "새로 바꿀 문자");
문제 3. 문자열 돌리기
문제: 문자열 str이 주어집니다. 문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.
입력: abcde
출력:
a
b
c
d
e정답:
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 = br.readLine();
for(char c : str.toCharArray()) {
System.out.println(c);
}
}
}}
획득: 그동안 배웠던거 활용
문제 4. 홀짝 구분하기
문제: 자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.
입력: 100
출력: 100 is even정답:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution{
public static void main(String\[\] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
if (n % 2 == 0) {
System.out.println(n + " is even");
} else {
System.out.println(n + " is odd");
}
}
}획득:
- int형식으로 받기 위해선 Scanner는 sc.nextInt()로 BufferedReader는 Integer.parseInt()로
- 삼항연산자로 출력 가능
System.out.print(n + " is");
System.out.println(n % 2 == 0 ? " even" : " odd");문제 5. 문자열 겹쳐쓰기
문제: 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
입력: "He11oWor1d" "lloWorl" 2
출력: "HelloWorld"정답:
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
return my_string.substring(0, s) + overwrite_string + my_string.substring(s + overwrite_string.length());
}
}class Solution {
public String solution(String my_string, String overwrite_string, int s) {
StringBuilder sb = new StringBuilder(my_string);
return sb.replace(s, s + overwrite_string.length(), overwrite_string).toString();
}
}class Solution {
public String solution(String my_string, String overwrite_string, int s) {
char[] my = my_string.toCharArray();
char[] over = overwrite_string.toCharArray();
for(int i = 0; i < over.length; i++) {
my[i + s] = over[i];
}
return String.valueOf(my);
}
}획득: 어려웠다..
- substring(): substring(시작, 끝 개수) 형태이다, index(시작) 부터 끝 개수 까지 조회
- StringBuilder.replace(): replace(시작, 끝, 바꿀문자열)
- String.valueOf(): String 타입으로 형 변환
'Dev Log > Algorithm' 카테고리의 다른 글
| [프로그래머스] 코딩 기초 트레이닝 - Day 1 (0) | 2026.09.14 |
|---|