Early Riser
생각정리
Early Riser
전체 방문자
오늘
어제
  • 분류 전체보기 (127)
    • JS (19)
    • React (33)
    • Web (2)
    • Library, Framework (14)
    • Algorithm (40)
    • Computer Science (3)
    • 회고 (3)
    • AI (13)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 비동기
  • RNN
  • javascript
  • 부스트캠프 9기
  • 자바스크립트
  • js
  • boosting
  • dfs
  • react
  • 구현
  • lightgbm
  • 부스트캠프 합격
  • useEffect
  • 완전탐색
  • 논문리뷰
  • 프로그래머스
  • LGBM
  • 알고리즘
  • global minima
  • 파이썬
  • 부스트캠프 합격 후기
  • local minima
  • 오늘의불경
  • 백트래킹
  • 딥러닝
  • useState
  • 백준
  • 밑바닥
  • 손실함수
  • BFS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Early Riser

생각정리

Algorithm

프로그래머스: 문자열 나누기 (파이썬, 반복문)

2022. 12. 5. 21:35

레벨2를 집중적으로 풀던 중 레벨1에 새로운 문제가 추가되어 풀어본 문제이다. 수를 계속 세야하므로 while문, 재귀함수 혹은 stack등 다양한 풀이가 있겠으나 제일 구현하기 쉬운 while문으로 풀어보았다.

 

문자열이 하나 남는경우만 잘 처리해준다면  까다롭지 않은 문제였던 것 같다. 

 

나는 python의 list slicing을 이용하여 첫번째 문자 x와 x가 아닌 문자들이 갯수가 같아질 때마다 전체 문자열 s를 줄여주고, 문자열이 남은 경우 답을 하나 더해줌으로써 해결하였다.

  

def solution(s):
    answer = 0
    i,j = 0, 1
    # cnt1은 첫번째 문자를 카운트하기 위한 용도이므로 미리 1로 지정하고, 반복문 시작구간을 첫번째문자 +1로함
    cnt1, cnt2 = 1, 0
    while i < len(s):
        standard = s[0]
        while j < len(s):
            if s[j] == standard:
                cnt1 += 1
            else:
                cnt2 += 1
            if cnt1 == cnt2:
                answer += 1
                cnt1, cnt2 = 1, 0
                # list slicing으로 문자열을 줄여감
                s = s[j+1:]
                j = 1
                break
            j += 1
        i = j
    # s가 남아있을 경우 1을 더해주면 됌(ex:테스트 케이스2)
    if s:
        answer += 1
    return answer

'Algorithm' 카테고리의 다른 글

프로그래머스: 게임 맵 최단거리(파이썬, DFS, BFS)  (0) 2022.12.14
프로그래머스: 햄버거 만들기(파이썬, 스택)  (0) 2022.12.05
프로그래머스: 전화번호 목록 (파이썬, hash, dictionary)  (0) 2022.12.05
프로그래머스: 숫자블록 (파이썬, 구현)  (1) 2022.11.30
백준 17135번: 캐슬 디펜스 (파이썬, 완전탐색, 구현)  (0) 2022.09.07
    'Algorithm' 카테고리의 다른 글
    • 프로그래머스: 게임 맵 최단거리(파이썬, DFS, BFS)
    • 프로그래머스: 햄버거 만들기(파이썬, 스택)
    • 프로그래머스: 전화번호 목록 (파이썬, hash, dictionary)
    • 프로그래머스: 숫자블록 (파이썬, 구현)
    Early Riser
    Early Riser
    2년차 프론트엔드 개발자입니다. https://github.com/EarlyRiser42

    티스토리툴바