나의 코드

def solution(n, words):
    answer = [words[0]]
    x, y = 1, 1
    for i in range(1, len(words)):
        x += 1
        if x == n + 1:
            x, y = 1, y + 1

        if words[i] in answer:
            return [x, y]
        elif answer[-1][-1] != words[i][0]:
            return [x, y]
        else:
            answer.append(words[i])

    return [0, 0]

결과 인덱스를 x, y로 따로 연산해줬는데 그냥 나눠서 바로 구할 수 있었다.

 

 

효율 코드

return [(p%n)+1, (p//n)+1]

나의 코드

def solution(s):
    data = []
    for i in s:        
        if len(data) == 0:
            data.append(i)

        elif data[-1] == i:
            data.pop()

        else:
            data.append(i)

    return 1 if len(data) == 0 else 0

 

while, replace를 활용하면 1억~10억이 넘는 경우의 수로 시간 초과가 뜰 것.

 

스택을 이용하여 괄호 검사와 같은 맥락으로 접근해보자,

나의 풀이

def solution(n):
    cur = bin(n)[2:].count('1')

    while True:
        n += 1
        if cur == bin(n)[2:].count('1'):
            break
    return n

나의 풀이

def solution(n):
    fibo = [0, 1, 1] + [0] * (n - 2)

    for i in range(3, n + 1):
        fibo[i] = fibo[i - 1] + fibo[i - 2]

    return fibo[n] % 1234567

 

참고할만한 답안

# 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
# 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
def fibonacci(num):
    a,b = 0,1
    for i in range(num):
        a,b = b,a+b
    return a

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(fibonacci(3))

 

+ Recent posts