inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

1- 11. 1주차 끝 & 숙제 설명

문자열 뒤집기 문제 질문입니다!

해결된 질문

143

qkrwlsn102109

작성한 질문수 2

0

1. 현재 학습 진도

def find_count_to_turn_out_to_all_zero_or_all_one(string):
    # string을 순회하면서 0과 1의 연속된 덩어리 개수를 구함
    # 그 개수중 min을 return

    zero_seq = 0
    one_seq = 0
    prev_num = string[0]

    # 첫 bit 초기화
    if string[0] == "0":
        zero_seq += 1
    else:
        one_seq += 1

    # 2번째 bit부터 마지막까지 순회
    for bit in string[1:]:
        if bit != prev_num:
            if bit == "0":
                zero_seq += 1
            else:
                one_seq += 1

        prev_num = bit

    min_count = min(zero_seq, one_seq)

    return min_count


result = find_count_to_turn_out_to_all_zero_or_all_one(input)
print(result)

안녕하세요!

1주차 숙제 중 문자열 뒤집기 문제를 풀면서 궁금한 점이 있어 질문 남깁니다.

저는 풀이가 위 코드와 같이 나왔는데, 정답 코드랑 비교했을때 살짝 다르더라구요.

출력은 잘 나오는 것 같은데, 정확한 차이가 궁금합니다.

저는 현재 bit를 이전 bit와 비교하고, 강사님은 현재 bit를 다음 bit와 비교하는 방식의 차이일까요?

아니면 제 풀이에 문제가 있을까요?

python 코딩-테스트 알고리즘 data-structure

답변 1

1

딩코딩코

안녕하세요 qkrwlsn102109님!! 좋은 질문 감사합니다!!

 

결론부터 말하면, 제시해주신 코드도 완전히 정확합니다!

제가 작성한 코드는 현재 문자와 다음 문자를 비교하는 방식입니다! 그리고 변화가 일어나는 지점에서 "다음 문자"가 무엇인지 확인합니다. 이 때, 첫 번째 문자는 별도로 처리하도록 되어있습니다!

그리고 qkr님께서 제시해주신 코드는 현재 문자와 이전 문자를 비교하는 방식입니다! 이때, 변화가 일어나는 지점에서 "현재 문자"가 무엇인지 확인하는 것이 다릅니다. 마찬가지로 첫 번째 문자는 별도로 처리하도록 되어있구요

즉, 연속된 구간의 개수를 세는 방식이 다를 뿐, 본질적으로는 동일한 로직입니다!

예시로 "011110"을 보면:

  • 0구간: 1개 (맨 앞의 0)

  • 1구간: 1개 (가운데 1111)

  • 0구간: 1개 (맨 뒤의 0)

총 3개 구간이고, 0구간 2개, 1구간 1개이므로 min(2,1) = 1이 나오게 되어있습니다.

두 방법 모두 올바른 풀이방법이니까 안심하세요! 본인이 더 이해하기 쉬운 방식으로 구현하신 거라 오히려 좋다고 생각합니다 새로운 방법으로 시도해보시는 모습 넘넘 좋습니다!! 언제든 질문 편하게 올려주세요 ㅎㅎ

수강평 이벤트

0

34

2

코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요

0

70

2

3-3 정렬-2 선택정렬 로직

0

43

2

링크드 리스트 끝에서 k번째 값 출력하기

0

46

2

LinkedList 과제 Fast, slow 포인터

0

50

2

투포인터 시간복잡도

0

53

2

수강평 작성 후 자료

0

53

2

수업교재 링크 오류

2

114

2

프로그래머스에서 제출 후 채점시 틀림ㅠ

0

133

2

1-10 알고리즘 더 풀어보기(2) 질문 있습니다

0

76

2

문제 풀이 방식 관련 질문입니다!

0

88

2

1-5 알고리즘과 친해지기 (2) - 최빈값찾기 질문 있습니다

0

94

2

수업자료 pdf 받고싶습니다

0

108

2

강의 자료 오류 수정

0

75

1

2-10 더하거나 빼거나 관련 질문입니다

0

63

2

3-8 해쉬 -2

0

49

2

Linked List Element Delete Explanation Problem

0

69

2

강의3-4 스택 탑 문제

0

74

2

코드스니펫 입출력 케이스에 오류가 있는것 같아요

0

100

3

링크드 리스트 원소 찾기 구현 방식 질문드립니다.

0

76

2

1874 - 스택 문항

0

81

2

DP Java 예제 자료형 오버플로우 문제

0

100

2

4-9 4주차 숙제중 농심라면 문제

0

111

2

DFS 에서 스택을 사용하는 이유

1

187

3