본문 바로가기
짜잘IT

22.08.21 백준풀기, 개미수열

by 정람지 2022. 8. 15.

<Ec.crew에서 솔민이가 냈던 개미수열 문제 다시 풀기>

https://codechacha.com/ko/python-convert-string-to-list/

 

Python - 문자열을 리스트로 변환하는 방법

파이썬에서 String을 List로 변환하는 방법을 소개합니다. 문자열의 문자들을 분리하여 리스트로 변환, split()으로 문자열을 분리하여 리스트로 변환, slicing으로 문자열을 추출하여 리스트로 변환.

codechacha.com

def antant(A):  # 리스트 안 같은 숫자들을 리스트로 묶어 주는 함수
    A = str(A)
    A = A.split(' ')
    B = []
    prelist = []
    if len(A)==1:
        B = [A]
    else :
        for i in range(len(A)-1):
            if A[i] ==A[i+1] :
                prelist.append(A[i])
            else:
                B.append(prelist)
                prelist=[]
        if A[-1] == A[-2]:
            B[-1].append(A[-1])
        else:
            B.append([A[-1]]) 
    return B

def ANTANT(K): # 리스트 받아서 그다음 줄 만들어주는 함수
    result = ''
    for miniList in (antant(K)):
        result += str(miniList[0])
        result += str(len(miniList))
    return result # 문자열

from sys import stdin
# 첫번째 수와 출력할 줄 수 입력
N, M = map(int,stdin.readline().split())

for _ in range(M): # 결과
    N = ANTANT(antant(N)) # N은 문자열
    print(N)

엄청 이상하게 돌아감..

 

can only concatenate str (not "tuple") to str 에러

, 는 파이썬에서 중요한 역할을 하기 때문에 유의해야 함 

 

문자형이 다른 것을 추가할 수 없음!


<백준 1065번 한수>

from sys import stdin
M = int(stdin.readline())

def funcfunc(N,NLen):
    benum = N%(10**(NLen))//(10**(NLen-1))
    afnum = N%(10**(NLen-1))//(10**(NLen-2))
    NLen -= 1
    return benum - afnum 

realresult = 0

for i in range(1,M+1):
    N = i
    NLen = len(str(N))
    realNlen = NLen
    result = 0

    if NLen == 1 or NLen == 2:
        realresult += 1
    else:
        while( NLen > 2 ):
            if funcfunc(N,NLen) == funcfunc(N,NLen-1):
                result += 1
            NLen -= 1
            
        if result == realNlen-2:
            realresult += 1

print(realresult)

풀었다!! 희열! 

오류 엄청 많이 냈다 꼼꼼해야해

 

특정 자릿수의 숫자 구하기

숫자%(10**(구하려는자릿수보다한단계더큰값))//(10**(구하려는자릿수))

'짜잘IT' 카테고리의 다른 글

22.08.30 백준풀기  (0) 2022.08.30
22.08.27 백준풀기  (0) 2022.08.27
22.08.14. 백준풀이  (0) 2022.08.14
22.08.13 백준풀기  (0) 2022.08.13
22.08.12 백준풀기  (0) 2022.08.12