-
[Programmers] 문자열 나누기 _Python알고리즘/프로그래머스 2022. 12. 2. 18:19728x90반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/140108
풀이
def solution(s): ans = 0 char = "" ch1, ch2 = 0, 0 for idx, i in enumerate(s): if char == "": char = i ch1 += 1 elif char == i: ch1 += 1 elif char != i: ch2 += 1 if ch1 == ch2 or idx == len(s)-1: print(char, i, idx) ans += 1 ch1 = 0 ch2 = 0 char = "" return ans
다른 사람의 풀이
def solution(s): answer = 0 sav1=0 sav2=0 for i in s: if sav1==sav2: answer+=1 a=i if i==a: sav1+=1 else: sav2+=1 return answer
훨씬 짧게도 가능했다.
새로 알게된 함수
enumerate
for문에서 Index와 value 동시에 접근하기 _enumerate()
enumerate() 내장 함수를 이용하는 방법
enumerate()라는 내장 함수를 이용하면 더 편리하고 가시적인 코딩을 할 수 있다.
arr = [2, 7, 10] for idx, val in enumerate(arr): print(idx, val) # Output: # 0 2 # 1 7 # 2 10
enumerate
enumerate는 ‘열거하다’라는 뜻이다.
enumerate() 내장 함수는 순서가 있는 자료형(tuple, list, string)을 첫번째 인자로 받아서 각각의 index 값과 value 값들을 enumerate 객체로 리턴한다.my_list = ['apple', 'banana', 'grapes'] counter_list = list(enumerate(my_list)) print(counter_list) # Output: [(0, 'apple'), (1, 'banana'), (2, 'grapes')]
두번째 인자로 정수를 전달하면 시작하는 index 값을 조정할 수도 있다.
arr = [2, 7, 10] for idx, val in enumerate(arr, 5): print(idx, val) # Output: # 5 2 # 6 7 # 7 10
LIST'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] 가장 가까운 글자 _Python (0) 2023.01.03 [Programmers] 크기가 작은 부분문자열 _Python (0) 2022.12.28 [Programmers] 삼총사 _Python (2) 2022.12.01 [Programmers] 귤 고르기 _Python (1) 2022.11.26 [Programmers] 햄버거 만들기 _Python (1) 2022.11.24