커머스 과제 (도전_step1)

최길중·2026년 1월 20일

Lv 1. 장바구니 및 주문하기 기능을 추가하기

노션의 체크 박스를 보면서 풀기 시작했는데 좀 어려워서 그냥 출력 예시를 보면서 스스로 풀기 시작했습니다.

package CommerceProject;

import java.util.ArrayList;
import java.util.List;

public class shoppingBasket {
    private List<Product> basket = new ArrayList<>();


    public void addShoppingBasket(Product product, int quantity) {
        for (int i = 0; i < quantity; i++) {
            basket.add(product);
        }
    }

    public void printBasketItems() {
        System.out.println("[ 장바구니 내역 ]");
        List<Product> printed = new ArrayList<>();

        for (Product p : basket) {
            boolean ready = false;
            for (Product product : printed) {
                if (product == p) {
                    ready = true;
                    break;
                }
            }
            if (ready) continue;

            int count = 0;
            for (Product x : basket) {
                if (x == p) count++;
            }
            System.out.printf("%s | %,d원 | %s | 수량: %d개%n",
                    p.getProductName(), p.getPrice(), p.getDescription(), count);
            printed.add(p);


        }
    }

    public int getTotalPrice() {
        int total = 0;
        List<Product> printed = new ArrayList<>();

        for (Product p : basket) {
            boolean ready = false;
            for (Product product : printed) {
                if (product == p) {
                    ready = true;
                    break;
                }
            }
            if (ready) continue;

            int count = 0;
            for (Product x : basket) {
                if (x == p) count++;
            }
            total += p.getPrice() * count;
            printed.add(p);
        }
        return total;
    }
}

고작 이 몇 줄 적는데 5시간 정도 걸렸던 것 같습니다.
중간중간 트러블 슈팅도 많았는데 해결해 나가면서 까먹었습니다.


출력이 10배 크게 나와서 하마터면 부자가 될 뻔했지 뭡니까

주석 처리된 부분을 안 적어줘서 이런 해프닝이 있었습니다.
30분인가 1시간 고민한 보람이 있습니다.

커머스 시스템도 손봐야 하는데 이제 결과 값이 정상적으로 나옵니다.

profile
개발자가 되고 싶어요

0개의 댓글