백준 저지 5585번 거스름돈 문제 Pseudo code + Python code
1 | product_price = int(input()) |
1 | product_price = int(input()) |
(오류1) 손코딩을 한 부분에 오류가 있다. age, name을 한 줄에서 입력받는데, 두 입력 데이터의 타입은 같지 않기 때문에 integer 형으로만 설정할 수 없다.
이 경우에는 string 형으로 우선 받고나서 데이터를 삽입할때 integer형으로 type casting을 해주면 된다.
(오류2) 두번째 오류는 문제의 조건에서 튜플의 첫번째 요소(나이)로 우선 오름차순 정렬을 하고, 튜플의 두번째 요소(이름)으로 오름차순 정렬을 하는 문제가 아닌, 나이로 오름차순 정렬을 하고, 나이가 같으면 입력한 순서대로 정렬을 하는 문제였다. 따라서 정렬 조건을 key = lambda x:(x[0], x[1]) 가 아닌 key = lambda x: x[0]로만 해주면 된다.
1 | test_case = int(input()) |
위에서 손코딩한 코드에서는 left_stack과 right_stack을 for문 외부에서 초기화 해주었지만, 이렇게 해주면 매 테스트 케이스마다 초기화된 스택을 사용할 수 없기 때문에 for-loop 내에서 left_stack과 right_stack을 초기화 시켜주어야 한다.
1 | test_case = int(input()) |
Python 메인 강의
과제점검
Ethiopian Multiplication
1 | result = 0 |
<!-- more -->
Monty Hall Simulation
1 | import random |
이 포스팅은 Udemy : Understanding TypeScript - 2021 Edition 에서 개별 학습한 내용을 기반으로 작성하였습니다.
TypeScript에 대한 개념 이해
TypeScript는 JavaScript의 Superset으로, 기존의 자바스크립트 위에 building된 언어이다.
기존에 JavaScript에는 없던 각종 이점들을 추가한 언어라고 생각하면 된다. 하지만 브라우저에서는 실행할 수 없기 때문에 작성한 TypeScript는 JavaScript로 컴파일 된 후에 실행된다.
TypeScript의 이점
1 | function add(num1, num2) { |
Python 메인 강의 과제 (완료)
(1) Ethiopian multiplication 문제 (완료)
(2) Monty hall 문제
앞서 작성한 Pseudo code와 손코딩 한 부분의 코드상에 논리적 문제를 발견했다. 만약 사용자가 선택한 문과 당첨 문이 일치하지 않는 경우, 진행자는 당첨문과 사용자가 선택한 문을 제외한 범위 내의 문을 열어서 보여줘야 하기 때문에 이 경우에는 당첨 문과 참가자가 선택한 문 둘 다 제거를 해줘야 한다. 만약 사용자가 선택한 문과 당첨 문이 같은 경우에는 사용자가 선택한 문을 제외한 두 개의 문 중에서 하나를 선택해서 문을 열어서 보여주면 된다.
기본적으로 문제풀이에서 요구하는 것은 isupper()와 islower()를 사용하여 주어진 문자열, 배열의 값을 소문자는 대문자로, 대문자는 소문자로 토글하는 문제였다.
아래는 내가 작성한 문제의 답으로, solution1에서는 isupper()와 islower()를 사용해서 입력된 값을 조건처리하여 작성하였다.
solution2에서는 입력된 값의 조건처리를 알파벳의 ASCII 코드 값을 활용하여 접근하였다.
solution1과 solution2에서 공통적으로 입력된 값이 문자열인지 리스트인지 구분하여, 문자열인 경우 문자열의 값을 리스트화하고, 출력을 할때에도 입력된 값이 문자열인 경우와 그렇지 않은 경우를 구분하여 출력하는 구문도 조건처리하였다.