[백준] 9093. 단어 뒤집기(Java8)

2023. 1. 10. 18:00·알고리즘/Java
반응형

문제

풀이1 - 정답 (배열 사용)

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int t = Integer.parseInt(br.readLine()); // 테스트케이스 개수
		int cnt; // 토큰 개수
		ArrayList<String> arr;
		for(int i = 0; i < t; i++) {
			st = new StringTokenizer(br.readLine());
			arr = new ArrayList<>();
			
			cnt = st.countTokens();
			int arrLen;
			for(int j = 0; j < cnt; j++) {
				arr.add(st.nextToken());
				arrLen = arr.get(j).length();
				if(arrLen > 1) {
					for(int k = arrLen - 1; k >= 0; k--) {
						sb.append(arr.get(j).charAt(k));
					}
				}else {
					sb.append(arr.get(j));
				}
				sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);

		br.close();
	}

}

풀이2 - 정답 (Stack 사용)

풀이1에서 배열로 풀이한 문제를 아래와 같이 Stack을 활용해서도 풀이가 가능합니다.

스택의 Last In First Out 을 활용하여, 공백이나 줄바꿈을 만나면 현재 스택의 값들을 pop 명령어로 출력합니다.

 

Stack 선언

Stack<Element> stack = new Stack<>()

Stack - 값 추가

stack.add(value);

Stack - 값 제거

stack.pop(); // 가장 위쪽에 있는 값 제거(후입선출)

import java.io.*;
import java.util.*;

public class ex9093_stack {

	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int t = Integer.parseInt(br.readLine()); // 테스트케이스 개수
		Stack<Character> stack;
		String str;
		for(int i = 0; i < t; i++) {
			stack = new Stack<>();
			str = br.readLine() + "\n";
			for(char chr : str.toCharArray()) {
				if(chr == ' ' || chr == '\n') {
					while(stack.size() > 0) {
						bw.write(stack.pop());	//LIFO
					}
					bw.write(chr);
				}else {
					stack.add(chr);
				}
			}
		}
		
		br.close();
		bw.flush();
		bw.close();
	}

}

팁

Stack

2021.10.14 - [알고리즘/자료구조] - 자료구조 - 스택(Stack)의 정의와 예제

 

자료구조 - 스택(Stack)의 정의와 예제

자료구조(Data Structure)란? 데이터를 표현하고 관리하고 처리하기 위한 구조를 의미한다. 그 중 스택과 큐는 자료구조의 기초 개념으로 다음의 두 핵심적인 함수로 구성된다. 삽입(Push): 데이터를

soo-vely-dev.tistory.com

출처

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net

 

반응형

'알고리즘 > Java' 카테고리의 다른 글

[프로그래머스] 짝지어 제거하기 - 12973 (Java)  (0) 2024.11.26
[프로그래머스] 실패율 - 42889 (Java)  (0) 2024.10.29
[백준] 1158. 요세푸스 문제(Java8)  (0) 2023.01.09
[백준] 10845. 큐(Java8)  (0) 2023.01.04
[백준] 10828. 스택(Java8)  (0) 2022.12.28
'알고리즘/Java' 카테고리의 다른 글
  • [프로그래머스] 짝지어 제거하기 - 12973 (Java)
  • [프로그래머스] 실패율 - 42889 (Java)
  • [백준] 1158. 요세푸스 문제(Java8)
  • [백준] 10845. 큐(Java8)
Kim-SooHyeon
Kim-SooHyeon
개발일기 및 알고리즘, 블로그 운영에 대한 글을 포스팅합니다. :) 목표: 뿌리 깊은 개발자 되기
    반응형
  • Kim-SooHyeon
    soo_vely의 개발로그
    Kim-SooHyeon
  • 전체
    오늘
    어제
    • 분류 전체보기 (266)
      • AI (4)
      • 알고리즘 (108)
        • 자료구조 (3)
        • Java (104)
        • Python (1)
      • Back end (76)
        • Spring Project (28)
        • Java (24)
        • Kafka (1)
        • API (1)
        • Python (0)
        • Django (3)
        • Linux (1)
        • 서버 (2)
        • 에러로그 (11)
        • 부스트 코스 (1)
      • Front end (9)
        • HTML, CSS (4)
        • JavaScript (4)
        • JQuery (0)
      • 기타 프로그래밍 (4)
        • Android Studio (1)
        • Arduino (2)
        • Azure Fundamental(AZ-900) (1)
      • 개발도구 (24)
        • IntelliJ (2)
        • Git (12)
        • SVN (0)
        • Eclipse (2)
        • 기타 Tool (8)
      • Database (17)
        • Oracle (11)
        • MySQL (0)
        • H2 Database (3)
        • ORM & JPA (1)
      • 자격증 (10)
        • 컴활 1급 (7)
        • 컴활 2급 (2)
        • SQLD (1)
      • 기타 (14)
        • 블로그 운영 (6)
        • 문서 (1)
        • 기타 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    github
    문자열
    1차원 배열
    spring
    구현
    백준알고리즘
    알고리즘
    백준
    for문
    jpa
    BOJ
    springboot
    백준 자바
    Git
    Oracle
    오라클
    solved.ac
    배열
    단계별풀기
    java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kim-SooHyeon
[백준] 9093. 단어 뒤집기(Java8)
상단으로

티스토리툴바