211008 알고리즘

이은택·2021년 10월 8일
0

알고리즘

목록 보기
4/15
post-thumbnail

코드잇 파이썬 기초문제


리스트 인덱싱 연습

greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]

i = 0
while i < len(greetings):
    print(greetings[i])
    i += 1
# print(len(greetings)) 
# 코드를 작성하세요.

온도 단위 바꾸기

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    # 코드를 입력하세요.
    for i in range(len(fahrenheit)):
        celsius = (fahrenheit[i] - 32) * 5/9
        fahrenheit[i] = round(celsius, 1)
    return fahrenheit

temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: " + str(temperature_list))  # 화씨 온도 출력

temperature_list = fahrenheit_to_celsius(temperature_list)

# 리스트의 값들을 화씨에서 섭씨로 변환하는 코드를 입력하세요.
print("섭씨 온도 리스트: " + str(temperature_list))  # 섭씨 온도 출력

✔ Code refactoring

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    # 코드를 입력하세요.
    return round((fahrenheit - 32) * 5 / 9, 1)


temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: " + str(temperature_list))  # 화씨 온도 출력

i = 0
while i < len(temperature_list):
    temperature_list[i] = fahrenheit_to_celsius(temperature_list[i])
    i += 1
# 리스트의 값들을 화씨에서 섭씨로 변환하는 코드를 입력하세요.
print("섭씨 온도 리스트: " + str(temperature_list))  # 섭씨 온도 출력

환전 서비스

# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    # 코드를 입력하세요.
    for i in range(len(krw)):
        usd = round(krw[i] / 1000, 1)
        krw[i] = usd
    return krw

# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    # 코드를 입력하세요.
    for i in range(len(usd)):
        jpy = round(usd[i] * 1000 / 8, 1)
        usd[i] = jpy
    return usd

# 원화(₩)으로 각각 얼마인가요?
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화폐: " + str(prices))
 
# prices를 원화(₩)에서 달러($)로 변환하기
# 코드를 입력하세요.
prices = krw_to_usd(prices)

# 달러($)로 각각 얼마인가요?
print("미국 화폐: " + str(prices))

# prices를 달러($)에서 엔화(¥)으로 변환하기
# 코드를 입력하세요.
prices = usd_to_jpy(prices)

# 엔화(¥)으로 각각 얼마인가요?
print("일본 화폐: " + str(prices))

✔Code refactoring

# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    # 코드를 입력하세요.
    return krw / 1000


# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    # 코드를 입력하세요.
    return usd * 1000 / 8


# 원화(₩)으로 각각 얼마인가요?
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화폐: " + str(prices))
 
# prices를 원화(₩)에서 달러($)로 변환하기
# 코드를 입력하세요.
i = 0
while i < len(prices):
    prices[i] = krw_to_usd(prices[i])
    i += 1

# 달러($)로 각각 얼마인가요?
print("미국 화폐: {}".format(prices))

# prices를 달러($)에서 엔화(¥)으로 변환하기
# 코드를 입력하세요.
o = 0
while o < len(prices):
    prices[o] = usd_to_jpy(prices[o]) 
    o += 1

# 엔화(¥)으로 각각 얼마인가요?
print("일본 화폐: " + str(prices))

리스트 함수 활용하기

# 빈 리스트 만들기
numbers = []
print(numbers)

# numbers에 값들 추가
# 코드를 입력하세요
temp_list = [1, 7, 3, 6, 5, 2, 13, 14]
for i in range(len(temp_list)):
    numbers.append(temp_list[i])
print(numbers)

# ✔numbers에서 홀수 제거
# 코드를 입력하세요
temp_list = []
for i in range(len(numbers)):
    if numbers[i] % 2 == 0:
        temp_list.append(numbers[i])
numbers = temp_list

print(numbers)

# numbers의 인덱스 0 자리에 20이라는 값 삽입
# 코드를 입력하세요
numbers.insert(0, 20)
print(numbers)

# numbers를 정렬해서 출력
# 코드를 입력하세요
numbers.sort()
print(numbers)

✔numbers에서 홀수 제거 Code refactoring

# numbers에서 홀수 제거
# 코드를 입력하세요
count = 0
index = 0
length_of_numbers = len(numbers)
📌while count < length_of_numbers:
    count += 1
    if numbers[index] % 2 == 1:
        numbers.pop(index)
    else:
        index += 1

📌막혔던 부분

while count < len(numbers):로 작성시 pop 메서드로인해 numbers라는 리스트 길이가 줄어들기 때문에 리스트 안에 있는 값들을 while 루프로 다 돌릴 수 없음 따라서 임의로 numbers의 길이를 저장해 둘수 있는 리스트 length_of_numbers = len(numbers)를 만들어서 제어문을 while count < length_of_numbers:로 바꾸어야 했음

profile
도전!

0개의 댓글