99클럽 코테 스터디 9일차 TIL
💙 JAVA 비기너
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] wordArr = new String[N];
for (int i=0; i<N; i++) {
wordArr[i] = br.readLine();
}
br.close();
String password = "";
for(String revWord : wordArr) {
StringBuilder sb = new StringBuilder(revWord);
String reverse = sb.reverse().toString();
for(String word : wordArr) {
if(word.equals(reverse)) {
password = word;
break;
}
}
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(password.length() + " " + password.charAt(password.length()/2));
bw.flush();
bw.close();
}
}
어려울려나?! 했으나 생각보다 쉬워서 한번에 통과한 문제였다.
던어 수를 에 저장하고 문자열 배열
wordArr
에 단어를 입력받아 저장했다.
foreach문을 통해 wordArr
를 하나씩 StringBuilder.reverse().toString()
을 해주어서 문자열을 거꾸로 만들어서 reverse
에 저장하고 다시 foreach문을 통해 다른 단어들과 동일한지 확인했다.
만약에 같다면 password
에 해당 단어를 저장해주고 break;
을 통해 for문 실행을 중지시켰다.
String password = "";
for(String revWord : wordArr) {
StringBuilder sb = new StringBuilder(revWord);
String reverse = sb.reverse().toString();
for(String word : wordArr) {
if(word.equals(reverse)) {
password = word;
break;
}
}
}
처음에
break;
을 안쓰고 제출했는데 이후 비교를 위해 코드를 추가하고 실행해보니 메모리와 실행 시간이 짧아지는 걸 알 수 있었다.
아래 -break;
❌ / 위 -break;
⭕
패스워드를 알았으니 마지막으로 패스워드의 길이인 password.length()
와 가운데 글자인 password.charAt(password.length()/2)
를 출력해줬다.