오늘 한 일
코드카타
몫 구하기
※나누기/몫 구하기 차이
#나누기
print(10/3) --- #결과 : 3.333333
#몫 구하기
print(10//3) --- #결과 : 3
#나머지
print(10%3) --- #결과 : 1 (나머지 반환)
개인과제 레벨3 도전
3-3은 생각보다 할만했다
import math
# 장비별 이동 거리 계산 함수
def calculate_single_distance(machine_positions):
for machine, positions in machine_positions.items():
# 위치는 항상 두 개의 좌표만 제공됨
x1, y1 = positions[0]
x2, y2 = positions[1]
distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
print(f"{machine}의 이동 거리: {distance:.2f} 미터")
# 장비별 위치 데이터
machine_positions = {
"Machine A": [(0, 0), (5, 5)],
"Machine B": [(2, 2), (6, 8)],
"Machine C": [(0, 0), (3, 4)]
}
# 이동 거리 계산 실행
calculate_single_distance(machine_positions)
machine_positions가 하나의 딕셔너리 -> for문에서 key(장비 이름), value(위치)를 받음 -> value(위치)는 튜플이 들어있는 리스트, x1 y1 자리에 각각의 튜플이 들어가도록 함(변수 지정 완료) -> distance는 그냥 계산 식 그대로
나머지 3-1, 3-2는 모르겠다ㅜㅜ
3-1
g을 공백으로 바꾸는것은 가능, 그러나 kg만 있는 문자열을 골라서 숫자만 남기고 1000을 곱하고 싶은데 방법을 모르겠다..
3-2
해설
3-1
def normalize_weights(weight_list):
for i in range(len(weight_list)): #i를 리스트 개수만큼 반복
if weight_list[i].endswith("kg"): #리스트에서 i번째 인덱스가 "kg"으로 끝나는지
weight_list[i] = float(weight_list[i].replace("kg", "")) #"kg"으로 끝나면 "kg"을 공백으로 변경
elif weight_list[i].endswith("g"): #리스트에서 i번째 인덱스가 "g"으로 끝나는지
grams = float(weight_list[i].replace("g", "")) #"g"으로 끝나면 "g"을 공백으로 변경
weight_list[i] = grams / 1000 # g → kg로 변환(1000으로 나누기)
# 제품 무게 리스트
weight_list = ["0.5kg", "500g", "1kg", "750g", "2kg"]
# 단위 통일 실행
normalize_weights(weight_list)
print(weight_list)
해설을 보니까 kg은 그냥 제거, g은 제거 후 1000으로 나눠서 최종적으로 리스트 내의 데이터가 모두 생략된(?) kg단위를 갖도록 만들어졌다.
변명 아닌 변명을 하자면,,, 문제에 써있는대로 [kg은 1000을 곱해서 단위 생략, g은 그냥 단위 생략] 이렇게 생각해서 기초를 잡을 때 부터 생각이 꼬여서 이상하게 만들어버린 것 같다.... 물론 해설을 보니 내가 생각한대로도 해설대로 하면 금방 나올 수 있었겠지만 ㅜㅜ
전혀 생각 못했던 부분을 꼽자면, for문으로 i번 돌리는 반복문을 짜고, 그 i 번째 인덱스를 리스트에서 찾는 생각을 아예 못했었다 !! 다음에 비슷한 문제가 나오면 응용해봐야겠다
3-2
def equipment_code_decoder(code_list):
change = {"공":"0", "일":"1", "이":"2", "삼":"3", "사":"4", "오":"5", "육":"6", "칠":"7", "팔":"8", "구":"9"}
for code in code_list:
converted_code = ""
for char in code:
if char in change:
converted_code += change[char]
else:
converted_code += char
print(f"[{code}]에 대한 설비 코드는 [{converted_code}]입니다.")
# 설비 코드 목록
code_list = [
"삼5이사",
"0오6칠",
"48삼구",
"이74팔",
"9일이삼"
]
# 코드 변환 함수 실행
equipment_code_decoder(code_list)
딕셔너리를 이용하겠다는 생각 까지는 괜찮았는데 그 이후에 for, if문 짜는게 어려웠다.
중요 포인트 : converted_code 변수를 처음에 공백으로 두고 if문을 거쳐서 공백에 넣은 다음 결과로 출력하는것이 정답이었다...
'내일배움캠프(본캠프)' 카테고리의 다른 글
| [내일배움캠프] 본캠프 3/26 (1) | 2026.03.26 |
|---|---|
| [내일배움캠프] 본캠프 3/25 (0) | 2026.03.25 |
| [내일배움캠프] 본캠프 3/23 (0) | 2026.03.23 |
| [내일배움캠프] 본캠프 3/19 (0) | 2026.03.19 |
| [내일배움캠프] 본캠프 3/18 (0) | 2026.03.18 |