꿈꿈개
꿈을 좇아 꿈틀꿈틀
꿈꿈개
전체 방문자
오늘
어제
  • 분류 전체보기 (24)
    • 코딩테스트 문제풀이 (16)
    • 일기 (1)
    • AI (0)
      • 논문리뷰 (0)
      • NLP (0)
      • CV (0)
    • 자료구조 (2)
    • 알고리즘 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발 #알고리즘 #자료구조
  • 일기 #개발자 #퇴사 #인생 #기록 #블로그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
꿈꿈개

꿈을 좇아 꿈틀꿈틀

코딩테스트 문제풀이

[이것이 코딩테스트다] 문자열 뒤집기

2022. 8. 28. 16:14

문제

문자열 s에 모든 숫자를 같게 만들려고한다.

s에서 연속된 하나이상의 숫자를 잡고 모두 뒤집는다.

뒤집는것은 0에서 1로, 1에서 0으로 뒤집는 행위이다.

 

예를들어 s=0001100

1. 전체를 뒤집으면 1110011

2. 4번쨰부터 5번째 문자까지 뒤집으면 1111111 이 되어서 두번만에 모두 같은 숫자로 만들 수 있음

 

하지만 처음부터 4번쨰부터 5번째 숫자를 뒤집어서 한번에 0000000이 되어서 1번 만에 모두 같은 숫자로 만들 수 있음

 

입력 조건 : 첫째 줄에서 0과 1로만 이루어진 문자열 s가 주어짐(s의 길이는 100만 보다 작음)

출력 조건 : 뒤집는 행동의 최소 횟수를 출력함

 

입력예시 : 0001100

출력 예시 : 1

 

문제 해결 방법

같은 문자가 연속되는 것을 제거하여 저장한다.

예를들어 0001100같은 경우는 010 이렇게 저장해서 숫자가 달라지는 부분을 표시

그 후 문자열에서의 0의 횟수와 1의 횟수를 비교해서 최솟값을 출력한다. 0이 등장하는 횟수는 2번이고, 1이 등장하는 횟수는 1번이니 1이 출력된다.

 

코드

#입력
s=input()
#s의 첫번째 문자 저장
temp=s[0]
#축소 저장할 배열 초기화
word_list=[]
for char in range(1,len(s)) :
    #기존 문자와 현재 문자가 다를때 wordlist에 저장하고 현재 문자로 값 변환
    if s[char]!=temp :
        word_list.append(temp)
        temp=s[char]

#0의 횟수와 1의 횟수의 최솟값
answer=min(word_list.count("0"), word_list.count("1"))
print(answer)

 

<책에서의 풀이>

전부 0으로 바꾸는 경우와 1로 바꾸는 경우의 횟수를 카운트해서 최솟값 비교하는 방식이다.

data=input()
count0=0 #전부 0으로 바꾸는 횟수
count1=0 #전부 1로 바꾸는 함수

#첫번째 문자에 대한 처리
if data[0]=="1" :
    count0+=1
else :
    count1+=1

for i in range(len(data)-1) :
    if data[i+1]=="1" :
        count0+=1
    elif data[i+1] == "0" :
        count1+=1

answer=min(count0, count1)

 

※이 게시글은 <이것이 취업을 위한 코딩테스트다(나동빈 저)> 를 참고하여 작성되었습니다.

'코딩테스트 문제풀이' 카테고리의 다른 글

[이것이 코딩테스트다] 무지의 먹방라이브  (0) 2022.08.28
[이것이 코딩테스트다] 볼링공 고르기  (1) 2022.08.28
[이것이 코딩테스트다] 만들 수 없는 금액  (0) 2022.08.28
[이것이 코딩테스트다] 이진탐색 부품찾기  (0) 2022.08.11
[이것이 코딩테스트다] 구현 (3) 게임개발  (0) 2022.08.09
    '코딩테스트 문제풀이' 카테고리의 다른 글
    • [이것이 코딩테스트다] 볼링공 고르기
    • [이것이 코딩테스트다] 만들 수 없는 금액
    • [이것이 코딩테스트다] 이진탐색 부품찾기
    • [이것이 코딩테스트다] 구현 (3) 게임개발
    꿈꿈개
    꿈꿈개
    꿈을 꾸는 개발자의 공부 일지

    티스토리툴바