문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14QpAaAAwCFAYi SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이단순 무식하게 전체를 검사하면 된다.하나의 행에 회문이 몇개인지, 하나의 열에 회문의 몇개인지 3중 for문을 사용해 가로 한번 세로 한번 카운트해서 풀었다. 리팩터링은 다음과 같이 진행했다.list(zip(*wordBoard))를 사용해 전치한 행렬을 생성하여 사용하기문자가 회문인지 검사할때는 절반만 검사하기isPalindrome 플래그 대신 all()을 사용하여 모두 만족하는지 검사하기 ..
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이0으로 채워진 문자열과 앞에서부터 한 문자씩 같은지 검사하되 다르다면 뒷부분을 1로 채워버리고 검사를 이어나가는 방식으로 생각하면 된다. (실제로 0으로 채워진 리스트를 만들어서 비교할 필요는 없고 숫자 하나에 기록한다.) "0100111"이라고 가정하고 0과 비교를 시작하는 예제0 -> 0과 비교시 같음1 -> 0과 비교시 다름, 다음 숫자부터 1과 비교, 정답 1 증가0 -> 1과 비교시..
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AZD8K_UayDoDFAVs SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이더해지는 숫자가 클수록 이득이다. 임계값 N을 초과할때까지 A, B중 작은수에 큰 수를 더하면서 더하는 횟수를 세면 된다. 정답 코드T = input()testCases = [list(map(int, input().split())) for _ in range(int(T))]for testCase in testCases: answer = 0 while testCase[2] >= m..
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이숫자는 1부터 (N*N)번까지 1씩 증가하며 입력되고 우, 하, 좌, 상 순서로 벽이나 이미 작성된 숫자를 만나면 방향을 이동하는것에 주의하면서 로직을 작성하면 된다. 우선 달팽이 숫자들을 저장할 N*N 리스트를 0으로 초기화 해놓는다. move = [[0, 1], [1, 0], [0, -1], [-1, 0]] # 우, 하, 좌, 상move에 각 방향별 더해줄 y, x값을 미리 리스트로 선언한..
[4주차] 편의점 🚀 할인 혜택과 재고를 고려한 최종 결제 금액을 계산하고 안내하는 편의점 결제 시스템 구현 ✒️ 기능 요구 사항사용자가 입력한 상품의 가격과 수량을 기반으로 최종 결제 금액을 계산한다.총구매액은 상품별 가격과 수량을 곱하여 계산하며, 프로모션 및 멤버십 할인 정책을 반영하여 최종 결제 금액을 산출한다.구매 내역과 산출한 금액 정보를 영수증으로 출력한다.영수증 출력 후 추가 구매를 진행할지 또는 종료할지를 선택할 수 있다.사용자가 잘못된 값을 입력할 경우 IllegalArgumentException를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.Exception이 아닌 IllegalArgumentException, IllegalStat..
[3주차] 로또 🚀 보유 금액만큼 로또를 자동 구매하고 당첨 번호를 입력받은 뒤 당첨 통계와 수익률을 출력로또 번호의 숫자 범위는 1~45까지이다.1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다.당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다.당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다.1등: 6개 번호 일치 / 2,000,000,000원2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원3등: 5개 번호 일치 / 1,500,000원4등: 4개 번호 일치 / 50,000원5등: 3개 번호 일치 / 5,000원로또 구입 금액을 입력하면 구입 금액에 해당하는 만큼 로또를 발행해야 한다.로또 1장의 가격은 1,000원이다.당첨 번호와 보너스..