728x90
안녕하세요 세기무민입니다.
회사 다니다보니 알고리즘 공부에 조금 소홀했는데
향후 이직이나 알고리즘 공부를 위해 틈틈히 풀면 좋을 것 같아서
이번 포스팅은 백준 알고리즘 포스팅으로 찾아왔습니다.
문제 설명
예시
문제 풀이
우선 해당 문제에서는 패턴만 파악하면 되는 문제인데
예시로 나온 dir a?b.exe를 유심히 봅시다.
acb.exe, aab.exe, apb.exe가 나와도 문제 없다고 하는 말을 다시 해석해보면
?표에 들어간 단어는 달라도 무관하다는 의미를 가집니다.
즉, 입력받은 값들 중 같은 값이 아닌 경우에는 ? 표시를 해주면 되는 문제입니다.
코드를 보면 아래와 같습니다.
# 명령 프롬포트 - 1032
inputValue = int(input())
for i in range(inputValue):
if i == 0:
value = list(input())
result = value
else :
n_value = list(input())
for j in range(len(value)):
if value[j] == n_value[j]:
result[j] = value[j]
else:
result[j] = '?'
print(''.join(result))
문자열로 비교하는 방식보다는 리스트로 비교 후 리스트를 문자열로 변환하는게 조금 더 편할 것 같아서 위와 같이 구현했습니다.
풀이 방식은 아래와 같습니다.
- 입력 받은 N의 숫자들 중 가장 첫번재로 들어온 값은 result 리스트에 담아둡니다.
- 그 후로 입력받은 값들을 가장 먼저 입력받은(value) 값과 하나씩 비교합니다.
- 비교 시 같을 경우는 value, 다를 경우에는 ?를 result에 추가해줍니다.
- 리스트로 들어온 값을 문자열로 변환해줍니다.
결과
GitHub 문제 풀이
문제 푼 내용은 위의 링크에서 확인할 수 있습니다.
다음에도 알고리즘 문제 풀이 포스팅으로 찾아오겠습니다!
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 10423번 전기가 부족해(Java) - 세무민의 코딩일기 (0) | 2021.10.07 |
---|---|
[백준] 14621번 나만 안되는 연애(Java) - 세무민의 코딩일기 (0) | 2021.10.05 |
[백준] 4386번 별자리 만들기(Java) - 세무민의 코딩일기 (0) | 2021.10.04 |
[백준] 1197번 최소 스패닝 트리(Java) - 세무민의 코딩일기 (0) | 2021.09.29 |
[백준] 1647번 도시 분할 계획 연결 문제 풀기(Java) - 세무민의 코딩일기 (0) | 2021.09.23 |