10주차 구현 : 문제 1
✔ BOJ_17413
괄호를 기준으로 문자열을 판별합니다. 괄호 내부에는 문자열을 뒤집지 않기 위해 check라는 변수를 할당하고 이용했습니다. String에다가 더해놓고 >를 만나면 StringBuffer를 이용하여 뒤집는 방식으로 코드를 작성했는데, 찾아보니 스택을 사용하면 보다 더 빠르게 구현할 수 있다는 것을 깨달았습니다 .. !
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 소문자 숫자 공백 특수문자로만 이루어진 문자 s
// <>로 등장하는 경우 두 문자의 개수는 같다.
// <길이가 3이사인 부분 문자열 + 알파벳소문자와 공백만 있다>
// 연속하는 두 단어는 공백 하나로 구분한다. 태그는 단어가 아니며 태그와 단어 사이에는 공백이 없다.
String s = br.readLine();
String temp = "";
String answer = "";
boolean check = false;
for(int i=0;i<s.length();i++){
char c = s.charAt(i);
if(c=='<'){
StringBuffer sb = new StringBuffer(temp);
answer+= sb.reverse().toString();
answer+=c;
temp = "";
check = true;}
else if(c=='>'){
answer+=c;
check = false;}
else if(check){
answer+=c;
}
// 공백
else if(!check && c==' '){
StringBuffer sb = new StringBuffer(temp);
answer+= sb.reverse().toString();
answer+=c;
temp = "";
}
else if (!check){
temp +=c;}
}
if(!temp.isEmpty()){
StringBuffer sb = new StringBuffer(temp);
answer+= sb.reverse().toString();
temp = "";
}
System.out.println(answer);
}}
Author And Source
이 문제에 관하여(10주차 구현 : 문제 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alswn9938/10주차-구현-문제-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)