inflearn logo
강의

講義

知識共有

カカオコーテ6週間合格!

目標問題:ペクジュン1316の説明、問題の読み方

입/출력으로 모듈화를 해서 문제를 풀어보려고 하는데 방향이 맞는지 궁금합니다.

92

hazardous02127275

投稿した質問数 9

0

# 단어 입력 / 목록 리스트 출력
# 목록 리스트 입력 / 중복 검사 리스트에 이미 있는 요소인지 확인 후 각 요소를 다른 문자가 나오기전까지 중복 검사 리스트에 저장
# 중복 검사 리스트가 온전히 만들어진걸 카운팅 +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)

 

헤이밥 강의를 보고 평소 풀던 방법이 아닌 모듈화로 쪼개서 풀어보려 하는데 괜찮은지..

그리고 조건문을 좀 복잡하게 달아서 푼 것같은데 방법론적으로 좋은 접근인지도 조언을 구하고 싶습니다.

코딩-테스트 알고리즘 소프트웨어-설계 data-structure

回答 1

1

excusemee04122221

안녕하세요! 늦은 답변 죄송합니다

 

코드도 너무 좋고 모듈화도 좋습니다!

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