반응형

백준 알고리즘 5

알고리즘) 백준 11047번 동전 0

이번 문제도 난이도는 그렇게 어렵지 않았습니다. 사칙연산을 알맞게 사용하는 법만 잘 알면 됩니다. 동전을 가장 작게 쓰는 방법은 가장 큰 동전부터 사용하여 그 범위를 줄여나가야 합니다. 예로 제시된 4200원에서 동전을 가장 적게 사용하려면 이렇게 최소한으로 사용해야 합니다. 그럼 이 로직을 어떻게 구성하느냐, 아래와 같습니다. 이렇게 조건을 제시해주고 동전의 수를 따로 다른 변수에 저장해주고 원래 가격에서 계산한 동전 (나머지 없는)을 빼줘야 작은 수의 계산이 가능해집니다. 코드로 표현하면 아래처럼 됩니다. 그럼 즐코!

알고리즘 2020.01.22

알고리즘) 백준 11399번 ATM

문제는 길어 어려워보이지만 이해만 한다면 아주 쉬운 문제가 되겠습니다. 결국 시간을 최소로 단축시키려면 가장 시간이 적게 걸리는 사람을 앞으로 배치하고 순차적으로 오래걸리는 사람을 뒤에만 배치해주면 됩니다. 결국 sort를 사용하면 되는 문제이죠. input으로 받은 리스트를 오름차순으로 정렬 후 걸리는 시간을 더해주기만 하면 됩니다. 파이썬 쉘에서 돌린 것이니 백준 문제에 제출하실 때에는 시간단축을 위해 꼭 sys.stdin.readline()으로 변환해주시기 바랍니다.

알고리즘 2020.01.22

알고리즘) 백준 8958번 OX  퀴즈

오 한방에 성공해서 짱 기분 좋슴니다 하하하 안될줄 알았는데 답 안보고 풀어보자 해서 풀었습니다 굳굳 시간도 얼마 안걸렸어요 헤헤 이렇게 로직을 만들어줍니다. 두번째에서 O가 나올 때 더해주는 포인트에 1점을 누적시켜주고, X가 나오게 되면 포인트를 초기화해주는 방식이죠. 로직은 다음과 같습니다. 그럼 이제 백준에서 요구하는 input의 조건에 대해서 알아보겠습니다. 처음에 제공되는 숫자는 앞으로 받을 문자열의 갯수입니다. 그 숫자를 반복문을 돌릴 갯수로 지정해주고 input을 받음에 따라 로직을 실행하는 방법을 사용했습니다. 저번에도 언급했듯이, 백준에서는 input보다는 sys.stdin.readline()을 사용해주는 것이 처리속도 면에서 월등하니 후자를 사용하는 것을 추천합니다. 혹시 런타임 에러..

알고리즘 2020.01.21

알고리즘) 백준 15552번 A+B

사용한 언어는 파이썬입니다. 파이썬 idle에서 sys.stdin.readline()으로 입력값을 받으려면 txt 파일에 input을 저장해서 불러오기 식으로 해야하는데 그렇게 하려면 위의 코드는 작동하지 않습니다. 일반 idle에서는 작동하지 않습니다. 첫 값은 주어지는 값의 갯수이니 받고 꼭 형변환 해주시고, 다음에 받는 값들은 a와 b에 int형으로 저장 후 출력해주시면 됩니다. map(int, sys.stdin.readline().split()) 보다 arr = sys.stdin.readline().split() 로 받으면 array 형태로 받아지게 되는데 print(int(arr[0]) + int(arr[1]))로 출력하는 것이 처리속도가 빨랐습니다. 즐코!

알고리즘 2020.01.17
반응형