입/출력으로 모듈화를 해서 문제를 풀어보려고 하는데 방향이 맞는지 궁금합니다.
92
投稿した質問数 9
# 단어 입력 / 목록 리스트 출력
# 목록 리스트 입력 / 중복 검사 리스트에 이미 있는 요소인지 확인 후 각 요소를 다른 문자가 나오기전까지 중복 검사 리스트에 저장
# 중복 검사 리스트가 온전히 만들어진걸 카운팅 +1 입력 / 카운팅 출력
import sys
input = sys.stdin.readline
t = int(input())
cnt = 0
words = []
for _ in range(t):
words.append(input())
for word in words:
used_li = []
cur_word = ''
flag = 1
for c in word:
if cur_word != c and c not in used_li:
cur_word = c
used_li.append(c)
continue
if cur_word == c:
continue
if cur_word != c and c in used_li:
flag = 0
break
if flag == 1:
cnt += 1
print(cnt)
헤이밥 강의를 보고 평소 풀던 방법이 아닌 모듈화로 쪼개서 풀어보려 하는데 괜찮은지..
그리고 조건문을 좀 복잡하게 달아서 푼 것같은데 방법론적으로 좋은 접근인지도 조언을 구하고 싶습니다.
回答 1
1
안녕하세요! 늦은 답변 죄송합니다
코드도 너무 좋고 모듈화도 좋습니다!
import sys
input = sys.stdin.readline
t = int(input())
cnt = 0
# 단어 입력 / 목록 리스트 출력
words = []
for _ in range(t):
words.append(input())
# 목록 리스트 입력 / 중복 검사 리스트에 이미 있는 요소인지 확인 후 각 요소를 다른 문자가 나오기전까지 중복 검사 리스트에 저장
# 중복 검사 리스트가 온전히 만들어진걸 카운팅 +1 입력 / 카운팅 출력
for word in words:
used_li = [] # [1] 집합(set)을 이용하면, (이어서..)
cur_word = ''
flag = 1
for c in word:
if cur_word != c and c not in used_li: # [1] 여기서 not in 이 O(1)으로 줄어듭니다!
cur_word = c
used_li.append(c)
continue
if cur_word == c: # [2] 없어도 되는 코드
continue
if cur_word != c and c in used_li:
flag = 0
break
if flag == 1:
cnt += 1
print(cnt)주석으로 [1] 효율 개선과 [2] 코드 개선을 넣었습니다
여러번 푸시면서 지난번보다 더 효율적으로 쓸 수 없을까 고민하시고, 모듈로 사고하는 법 연습하시면은 나중에 더 크고 어려운 문제도 푸실 수 있을 겁니다!
잘 연습하고 계십니다!
예시1 질문
0
50
1
안녕하세요 코테 난이도
-1
329
2
연습문제 답 제공 관련하여
0
74
2
코테가 1주일 남았을 때의 학습 우선순위
0
103
2
목표문제
0
82
2
선행으로 공부하면 좋을 이산수학 종류를 알고싶어요.
0
110
1
사전문제가 잘 보이지 않습니다 !
0
81
2
스스로 고민하고 답을 보지 않고 구현을 해보았는데요
0
106
2
섹션 6 사전문제 3번문제 답안이 틀린것 같아요
0
128
2
사전문제말구 수업 강의하실때 사용하시는 자료는 배포안하시나요??
0
117
2
백준 12865문제 질문드립니다.
0
104
2
6강 연습문제 13137 질문있습니다.
0
88
1
오류
0
114
2
재귀
0
104
2
1강 연습문제&목표문제 정답지 위치
0
178
2
1강 연습문제 복습문제1 문제 오류
0
101
2
안녕하세요, print 방식에 대해 문의드립니다.
0
101
2
3:30 - sys.stdin.readline 질문
0
99
1
트리 - 목표문제 11725 메모리 초과
0
175
3
사전문제 관련 질문
0
166
2
식 오류 있습니다.
1
136
1
해상도 720p 라 글자가 흐릿하게 보입니다.
0
162
2
대기업 코테 난이도
0
627
1
2강 사전문제
0
199
1

