TIL - 240514

오정수·2024년 5월 14일

TIL

목록 보기
18/78

계획

위키독스

170번

a = 1
for i in range(1,11):
    a *= i
print(a)

+=과 같은 개념으로 *=도 돼서 신기했다.

175번

my_list = ["가", "나", "다", "라"]
for i in range(3):
    print(my_list[i:i+2])
###
for i in range( 1, len(my_list) ) :
  print(my_list[i-1], my_list[i])

첫번째 코드로 하면 리스트가 출력된다.
그래서 두번쨰 코드로 해야 보기와 같이 출력된다.

180번

low_prices  = [100, 200, 400, 800, 1000]
high_prices = [150, 300, 430, 880, 1000]
volatility = []
for a,b in low_prices,high_prices:
    volatility = b-a
print(volatility)
###
low_prices  = [100, 200, 400, 800, 1000]
high_prices = [150, 300, 430, 880, 1000]
volatility = []
for i in range(len(low_prices)):
    volatility = high_prices[i] - low_prices[i]
print(volatility)
###
low_prices  = [100, 200, 400, 800, 1000]
high_prices = [150, 300, 430, 880, 1000]
volatility = []
for i in range(len(low_prices)):
    volatility.append(high_prices[i] - low_prices[i])
print(volatility)

첫번째 코드는 오류가 나온다.
for문을 저렇게 쓰면 안되는 거 같다.

두번째 코드는 0이 출력된다.
리스트로 추가할 수가 없는 거 같다.

세번째 코드처럼 append()를 사용해서 volatility에 값을 추가해야 한다.

알고리즘 코드카타

24번

def solution(seoul):
    for i in range(len(seoul)):
        if seoul[i] == 'Kim':
            print(f'김서방은 i에 있다')

def solution(seoul):
    for i in range(len(seoul)):
        if seoul[i] == 'Kim':
            return f'김서방은 i에 있다'

def solution(seoul):
    for i in range(len(seoul)):
        if seoul[i] == 'Kim':
            return f'김서방은 {i}에 있다'

첫번째 코드에서 함수 안에 프린트를 써서 틀렸다.

두번째 코드는 f-string안에 중괄호를 치지 않고 i라고 해서 i의 값이 아닌 i가 반환되었다.

마지막 코드가 정답이다..!

25번

def solution(arr, divisor):
    a = []
    for i in arr:
        if i % divisor == 0:
        a.append()
    if a == []:
        return -1

def solution(arr, divisor):
    a = []
    for i in arr:
        if i % divisor == 0:
            a.append(i)
    if len(a)==0:
        return [-1]
    else :
        return sorted(a)

첫번째 코드에는 append() 안에 값이 없었고 if 함수 밑에 tab이 안 되어있다.
파이썬은 tab도 문법이니 잊지 말자.

두번째 코드가 정답..!

26번

def solution(absolutes, signs):
    a = 0
    for i in range(len(signs)):
        a += absolutes[i] * (signs[i]-1)
    return a

def solution(absolutes, signs):
    a=0
    for i in range(len(absolutes)):
        if signs[i] == True:
            a += absolutes[i]
        else :
            a += absolutes[i]*-1
    return a

첫번째 코드는 true가 0이 되고 0을 곱해서 오답이 나온다.

두번째 코드가 정답이다..!
true일 때와 false일 때 값을 지정해서 올바른 답으로 유추할 수 있다.

27번

def solution(phone_number):
    a = phone_number[len(phone_number)-5:]
    print(f'{'*'* len(phone_number)-4}{a}')

def solution(phone_number):
    return '*' * (len(phone_number) - 4) + phone_number[-4:]

첫번째 코드는 오류가 났는데 이유를 모르겠다.

조금 휴식을 가졌다가 쉽게 코드를 짰는데 정답이 돼서 좋았다.

마무리

오랜만에 TIL을 작성해서 뿌듯하다.

profile
안녕하세요 오정수입니다

1개의 댓글

comment-user-thumbnail
2024년 5월 16일

파이썬 공부하면서 고민하신 흔적이 많이 보이네요 화이팅!

답글 달기