본문 바로가기
창업

Dart for, map, list 실전 문제

by 주인자아앙 2025. 9. 25.

오늘은 dart 문제 예제를 풀어 봤다.

느낀 점은 와... 나 엄청 멍청하구나...

이게 큰 문제가 강의를 들을 때는 이해도 되고 이렇게 하면 되겠네 라는 생각이 정말 많이 들었고 코딩 생각보다 별거 없네??

이렇게 생각을 했는데 막상 예제 문제를 풀어보려고 하니까 아무것도 없고 텅 빈 창을 보면 뭐부터 해야 하지...? 이생각부터 들었다

텅빈 vs code

문제는 간단한 문제 였다 

점수에 해당하는 점수와 등급을 알맞게 출력 하는 문제 입니다
예시 점수 84
90~100점 : A등급
80~89점 : B등급
80점 이하는 C등급
 
 
 
 

이런식으로 간단하게 점수와 등급을 표시해주는 프로그램이었다 if 문을 사용하면 쉽게 해결할 수 있었다

하지만 막상 타이핑을 시작 하려고 하니까 아... 이거 연습 예제를 정말 많이 해봐야겠다는 생각이 가장 먼저 들었다.

우여곡절 끝에 첫번째 문제는 완성을 해냈다.

void main() {
int student = 89;
print('필수 문제 1번');
if (student >= 90){
print('이 학생의 점수는 $student 이며, 등급은 A등급 입니다!');
}else if (student < 80){
print('이 학생의 점수는 $student 이며, 등급은 C등급 입니다!');
}
if (student < 80){
}else if (student < 90){
print('이 학생의 점수는 $student 이며, 등급은 B등급 입니다!');
}
}

코드는 이런식으로 작성했다 분명 더 깔끔하고 더 보기 좋게 선언하고 하는 방법은 많은 것이다.

이렇게 까지 코드가 길 필요가 없을 텐데 하지만 당장 내가 할 수 있는 정도의 수준이었다. 

그리고 두번째 문제에 를 풀어 봤다

가상의 쇼핑몰에서 결제 금액을 계산하는 프로그램입니다.
구매자가 장바구니에 담은 상품들의 전체 금액을 계산합니다.
총 금액이 20,000원일 경우 10%의 할인이 적용 됩니다.
최종적으로 구매자가 결제해 하는 금액을 출력 합니다.

첫 번째 문제를 풀어서 이건 쉽겠는데 라는 생각이 들었지만

큰 착각이였다 

분명 강의 를 들었을 때는 for 문 정도 사용 하면 될 거 같은데?라는 생각이 들었는데 아까 텅 빈 vscode 프로그램을 보면 내 뇌 또한 텅 비어버리는 느낌이었다 

그래서 문제를 해결하기 위해 강의도 다시 돌려서 확인 해보고 도저히 안 되겠는 부분은 인터넷에서 조금 찾아보면서 간신히 해결을 할 수 있었다.

void main() {
// ignore: unused_local_variable
List<String> cart = ["티셔츠", "바지", "모자", "티셔츠", "바지"];

Map<String, int> clothes = {'티셔츠': 10000, '바지': 8000, '모자': 4000};

int total = 0;
int discount = 0;
print('필수 문제 2번');
for (var item in cart) {
total += clothes[item] ?? 0;
}
print('장바구니에 $total 원어치를 담으셨네요!');
if (total >= 20000) {
double discount = total / 10;
print('할인금액 : ${discount.toInt()} 원');
double totaldiscount = total - discount;
print('최종적으로 결제하실 금액은 ${totaldiscount.toInt()} 입니다!');
}
}

나는 이런식으로 프로그램을 완성해냈다.

실제로 정상적으로 구동이 되고 그렇다 보니까 정말 신기했다.

그러면서 앞으로는 강의를 들을 때 시간이 좀 걸리더라도 반드시 강의의 가장 어려운 예제는 꼭 vscode 든 dartpad에서 손으로 직접 작성해보고 이해하려고 노력을 해야겠다는 생각이 들었고 그렇게 실행을 해보았는데

분명 강의를 들으면서 작성할 때는 이해도 되고 작성도 쉬웠는데 막상 싹 지우고 나서 다시 적으려고 하면 생각이 잘 안 났다.

아직은 부족함을 많이 느꼈고 아직 첫날이니까 오늘부터 해봤던 방식대로 열심히 진행을 해봐야겠다는 생각이 많이 들었던 날이었다.

반응형

댓글