문제
고려대학교에 입학한 새내기 호돌이는 안암역을 지나다가 한 붕어빵 장수를 만났어요.
“안녕, 안녕, 안녕하십니까, 아저씨! 붕어빵 두 개 주세요.”
“안녕을 세 번 외쳤으니 붕어빵 세 개!”
붕어빵 두 개의 값을 내고 세 개를 받은 호돌이는 기분이 좋았어요. 호돌이가 붕어빵 하나를 꺼내어 한 입 물었는데…. 너무 뜨거워서 그만 붕어빵을 떨어뜨리고 말았어요ㅠㅠ
붕어빵은 자유 낙하운동을 하면서 땅에 떨어졌는데 신기하게도 좌우가 뒤집힌 모양으로 착지했답니다. 호돌이가 붕어빵을 한 입 물기 전의 모양이 입력으로 주어지면, 땅에 떨어졌을 때에는 어떤 모양일지 출력하세요.
입력
첫째 줄에는 두 개의 정수 N과 M(0≤N,M≤10)이 주어집니다. 둘째 줄부터 N개의 줄에 걸쳐 붕어빵의 모양이 주어집니다. 각 행에는 공백을 나타내는 ‘0‘ 또는 붕어빵을 나타내는 ‘1’이 총 M개 주어집니다.
출력
입력으로 주어진 붕어빵이 좌우로 뒤집힌 모양을 출력하세요.
예제 입력 1 복사
5 7
0010000
0111010
1111111
0111010
0010000
예제 출력 1 복사
0000100
0101110
1111111
0101110
0000100
내 풀이
한 줄씩 입력받아서 역으로 정렬해버린다면?
Scanner로는 정수입력을 받을 수 있음.
N행 M열의 다차원 배열..?
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.nextLine();
String[] boong = new String[N];
for(int i=0; i<N; i++){
boong[i] = sc.nextLine();
String rev = new StringBuilder(boong[i]).reverse().toString();
System.out.println(rev);
}
sc.close();
}
}
boong 문자열 배열에 한 줄씩 입력을 받는다. 다차원 배열이 만들어질텐데, M번 반복할 필요없이 StringBuilder의 reverse() 를 사용한다.
뒤집은 문자열을 한 줄씩 N번 출력하면 뒤집힌 붕어빵을 표현할 수 있다.
Kotlin
fun main() {
var (n, m) = readLine()!!.split(" ").map{ it.toInt() }
var boong = mutableListOf<String>()
//붕어빵 모양 입력받기
repeat(n){
boong.add(readLine()!!)
}
//각 행 좌우 뒤집기 및 출력
boong.forEach{
row -> println(row.reversed())
}
}
코틀린에서 문자열은 불변이지만, 문자열을 뒤집는 reversed() 메서드를 제공한다.
'코딩테스트' 카테고리의 다른 글
99클럽 코테 스터디 3일차 TIL : StringBuilder (0) | 2025.01.16 |
---|---|
99클럽 코테 스터디 2일차 TIL : Scanner와 BufferedReader (0) | 2025.01.15 |
99클럽 코테 스터디 1일차 TIL + String 접근 방식 (0) | 2025.01.13 |
백준 2일차 - 2840번 (0) | 2022.07.05 |
백준 1일차 - 14681번, 2884번, 2525번 (0) | 2022.07.04 |