코딩테스트

99클럽 코테 스터디 4일차 TIL : reverse()

kchabin 2025. 1. 16. 13:06

문제

고려대학교에 입학한 새내기 호돌이는 안암역을 지나다가 한 붕어빵 장수를 만났어요.

“안녕, 안녕, 안녕하십니까, 아저씨! 붕어빵 두 개 주세요.”

“안녕을 세 번 외쳤으니 붕어빵 세 개!”

붕어빵 두 개의 값을 내고 세 개를 받은 호돌이는 기분이 좋았어요. 호돌이가 붕어빵 하나를 꺼내어 한 입 물었는데…. 너무 뜨거워서 그만 붕어빵을 떨어뜨리고 말았어요ㅠㅠ

붕어빵은 자유 낙하운동을 하면서 땅에 떨어졌는데 신기하게도 좌우가 뒤집힌 모양으로 착지했답니다. 호돌이가 붕어빵을 한 입 물기 전의 모양이 입력으로 주어지면, 땅에 떨어졌을 때에는 어떤 모양일지 출력하세요.

입력

첫째 줄에는 두 개의 정수 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() 메서드를 제공한다.