백준(Backjoon) 1032, 명령 프롬프트
2021. 6. 23. 11:17ㆍCodingTest
문제풀이
위의 파일 이름들에 따른 패턴을 구하기 위해서는 패턴 문자열("config.sys") 변수를 초기화 한다음 다른 파일 이름 문자열들과 각각 문자를 비교하여 문자가 다른 부분은 "?"로 대체한다. 하나의 파일 이름 문자열과의 비교가 종료되면 패턴 문자열 변수를 새롭게 생성한 패턴으로 변경하고 다른 파일 문자열과 비교를 반복 수행한다.
소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
/* files들의 패턴 탐색*/
public static String solution(List<String> files)
{
/* 초기 패턴 문자열 */
String pattern = files.get(0);
/* 각각의 파일들과 pattern을 비교하여 최종 패턴을 생성한다. */
for(int i=1; i<files.size(); i++)
{
String dummy = "";
/* 하나의 파일과 패턴의 문자들을 하나씩 비교하여 문자가 틀린 경우 해당 자리를 ?로 채운다.*/
for(int j=0; j<files.get(i).length(); j++)
{
if(files.get(i).charAt(j)==pattern.charAt(j))
{
dummy += pattern.charAt(j);
}
else
{
dummy += "?";
}
}
pattern = dummy;
}
return pattern;
}
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
List<String> files = new ArrayList<>();
for(int i=0;i<n;i++)
{
files.add(br.readLine());
}
String pattern = solution(files);
System.out.println(pattern);
}
}
'CodingTest' 카테고리의 다른 글
백준(Backjoon) 1966, 프린터 큐 (0) | 2021.06.25 |
---|---|
백준(Backjoon) 1212, 8진수 2진수 (0) | 2021.06.24 |
백준(Backjoon) 10988, 팰린드롬인지 확인하기 (0) | 2021.06.23 |
백준(Backjoon) 10610, 30 (0) | 2021.06.23 |
백준(Backjoon) 1100, 하얀칸 (0) | 2021.06.23 |