개요
꾸준한, 지속 가능한 습관을 형성하는 것은 어렵다. 반복되는 출퇴근 사이클에서 퇴근 이후 목표를 설정하고, 계획하고, 수행하는 데 어려움이 있는 것 같다.
퇴근 후 집에 도착하면 피로감과 함께 '오늘은 쉬자'는 생각이 자연스레 떠오른다. 내일부터 제대로 시작하면 되겠지. 하지만 그 '내일'은 결코 오지 않는다.
(다이어트는 내일부터..)
직장인의 저녁은 아이러니하다. 온전히 나를 위한 시간이면서도, 가장 에너지가 바닥난 시간이다. 의사결정 피로로 지친 뇌는 더 이상의 노력을 거부한다.
“내가 이런 것 까지 결정해야 돼?”
이런 악순환을 깨기 위해 최근 코딩 테스트 스터디를 신청하여 오늘부터 시작했다.
매일 하루에 한 문제씩 풀고 인증하는 간단한 일정이 생겼다.
간단한 습관을 형성하는 것부터 해봐야지. 건강한 생활 습관을 구축하는 것이 중요하다.
스터디를 통해 이 작은 시도가 어떤 변화를 가져올지 기대해본다.
오늘의 문제
https://www.acmicpc.net/problem/1032
첫 날이라서 인지, 비기너 레벨이어서인지 문제가 굉장히 쉽다.
문제를 간단히 설명하면, 주어진 문자열에서 동일한 위치에 동일한 문자가 나타나는지 여부를 판단하는 문제이다.
다음은 의사코드.
함수 solution():
n을 입력받음 (문자열의 개수)
pattern = null
n번 반복:
새 문자열(new_line)을 입력받음
만약 pattern이 null이면:
pattern = new_line을 문자 리스트로 변환
다음 반복으로 이동
pattern의 길이만큼 반복(i 사용):
ch_new_line = new_line의 i번째 문자
ch_pattern = pattern의 i번째 문자
만약 ch_pattern이 ch_new_line과 다르면:
pattern[i]를 '?'로 변경
pattern을 문자열로 합쳐서 출력
Python
def solution():
n = int(input())
pattern = None
for _ in range(n):
new_line = input()
if pattern is None:
pattern = list(new_line)
continue
for i in range(len(pattern)):
ch_new_line = new_line[i]
ch_pattern = pattern[i]
if ch_pattern != ch_new_line:
pattern[i] = '?'
print(''.join(pattern))
if __name__ == '__main__':
solution()
보너스 문제란다.
회문 판단하는 문제. 이 문제는 풀이가 여러 개 있는데, Python 으로는 아주 쉽게 풀 수 있다.
def solution():
sentence = input()
reversed_sentence = list(sentence)
reversed_sentence.reverse()
reversed_sentence = ''.join(reversed_sentence)
print(int(sentence == reversed_sentence))
if __name__ == '__main__':
solution()
list 뒤집고 원본 문자열과 비교하면 된다.