공부 기록

코테 공부하기 본문

다양한 분야 공부 기록/Python Coding Test

코테 공부하기

kstar2 2025. 2. 16. 13:07
def solution(code):
    mode = 0
    ret = ''
    
    for i in range(len(code)):
        if code[i] == '1':
            mode = not(mode)
        elif mode:
            if (i % 2) == 1:
                ret += code[i]
        else:
            if (i % 2) == 0:
                ret += code[i]
    if ret == '':
        return "EMPTY"
    return ret​
def solution(code):
    return "".join(code.split("1"))[::2] or "EMPTY"

이런 방법도 있었는데 넘 있는 그대로 나열했다.

mode를 쓸 생각을 못했네

 

내가 쓴 방법은 아래와 같다.

def solution(code):
    answer = ''

    mode = 0
    for i in range(len(code)):
        if code[i] == '1':
            mode ^= 1
        else:
            if i % 2 == mode:
                answer += code[i]

    return answer if answer else 'EMPTY'

---

불변형 이란?

불변형 자료형은 데이터 값을 바꿀 때 메모리에 저장된 데이터 전체를 모두 없애고 새로 만들지만,

변형 자료형은 할당된 메모리를 그냥 놔두고 메모리에 씌여있는 내용(값)만 바꾼다

 

변형 자료형은 변수가 특정 메모리 주소에 저장한 값까지 지워버리고 새로운 메모리 주조에 값을 저장하는 방식

 

https://datascienceschool.net/01%20python/02.14%20%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98%20%EC%9E%90%EB%A3%8C%ED%98%95.html

 

heap 이란?

메모리는 네가지 영역(코드 영역, 데이터 영역, 스택 영역, 힙 여역)으로 구분되는데

코드 영역은 실행할 프로그램의 코드가 저장되는 곳으로 CPU는 코드 영역에 저장된 명령어를 하나씩 가져가 처리함

 

데이터 영역은 전역변수와 정적 변수를 저장하는 공간이며 프로그램 시작시 할당되어 종료시 소멸됨

 

스택 영역은 지역변수와 매개변수를 저장하는 공간이며 함수의 호출과 함께 할당되며 함수의 호출이 완료되면 소멸함

 

힙 영역은 사용자의 동적 할당으로 생성되는 공간으로 사용자가 공간의 크기를 직접 관리할 수 있음

-> 메모리 낭비 없이 생산적으로 메모리 할당 가능하게 함