https://www.acmicpc.net/problem/3568
코드설명
문자열(String) + 파싱(Parsing)을 활용합니다.
문제에서 놓쳤었던 점은, 변수명이 여러글자인 경우입니다. 처음에 변수명이 한글자인줄 알고 처리했지만, 이후에 substring을 활용하여 변수명을 처리했습니다.
input
int& aweq*[]&, bsasd, csaaaa*;
answer
int&&[]* aweq;
int& bsasd;
int&* csaaaa;
사실, 거꾸로 뒤집혀서 들어가기에 Stack을 활용하는것도 떠올렸지만, 뒤에서 for문으로 처리하는 방식으로 구현했습니다.
코드
package Main;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
static int N, M, S, P, A, B, X, L, R, C, n, k, m, l, K, D, T;
static int answer = 0;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// StringTokenizer st = new StringTokenizer(br.readLine());
String str = br.readLine();
String[] split = str.split("[ ]");
String basicVariable = split[0];
for(int i=1; i<split.length; i++) {
StringBuilder sb = new StringBuilder();
sb.append(basicVariable);
for(int j = split[i].length() - 2; ; j--) {
if(split[i].charAt(j) != ']' && split[i].charAt(j) != '&' && split[i].charAt(j) != '*') {
sb.append(" ").append(split[i].substring(0, j + 1)).append(';');
break;
}
if(split[i].charAt(j) == ']') {
sb.append("[]");
j-=1;
continue;
}
sb.append(split[i].charAt(j));
}
System.out.println(sb.toString());
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 32403 전구 주기 맞추기 - 구현(Implementation) JAVA (0) | 2024.10.23 |
---|---|
[백준] 11899 괄호 끼워넣기 - 스택(Stack) JAVA (0) | 2024.10.09 |
[백준] 2852 NBA 농구 - 문자열(String) + 정렬(Sort) JAVA (0) | 2024.10.08 |
[백준] 3187 양치기 꿍 - BFS(넓이우선탐색) JAVA (0) | 2024.10.04 |
[백준] 3184 양 - BFS(넓이우선탐색) JAVA (0) | 2024.10.04 |