본문 바로가기

분류 전체보기521

[ 파이썬(python) ] 백준 20546 - 🐜 기적의 매매법 🐜 📍 백준 20546 - 🐜 기적의 매매법 🐜 백준 20546 - 🐜 기적의 매매법 🐜 ⚡️ 나의 풀이 문제가 생각보다 긴데, 다른 알고리즘 개념은 필요하지 않고 구현에 집중한 문제다. solved.ac에서는 브론즈 2라고 나와있는데, 나의 구현 실력은 아직 🥉 인가보다.. 푸는데 꽤 시간이 걸렸다. 구현 문제를 많이 풀어야겠다고 생각했다. 준현이와 성민이의 변수를 각각 선언했다. 준현이의 경우는 조금만 생각하면 금방 구할 수 있는데, 성민이의 경우 3일 연속 전일 대비 상승, 하락 부분이 힘들었다. 이 부분을 잘 구현하면 쉽게 풀 수 있는 문제다. 어떻게 풀었는지 다음을 살펴보자. 준현: 주식을 살 수 있다면 즉시 매수하기 때문에 현재 j_cash가 i보다 큰지 확인하고 크다면 새로운 변수 j_stock.. 2021. 4. 26.
[ 파이썬(python) ] 백준 5597 - 과제 안 내신 분..? 📍 백준 5597 - 과제 안 내신 분..? 백준 5597 - 과제 안 내신 분..? ⚡️ 나의 풀이 두 가지 방법으로 풀었는데 입력값을 list로 만들어 반복문을 선언하고 해당 i가 전체 범위인 students안에 있는지 확인하고 없는 값들을 출력하게 만들었다. 전체 범위와 입력값을 모두 set형으로 선언한뒤 서로 빼주고 sorted했다. 문제를 자세히 보면 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하라고 되어있는데, 문제 의도는 1번보다는 2번 코드에 더 가깝다고 볼 수 있다. 왜냐하면 sorted를 사용해서 작은 수부터 출력하기 때문이다. # case 1 students = list(range(1, 31)) report = [int(input()) for i in range(28)] p.. 2021. 4. 26.
[ 파이썬(python) ] 백준 20053 - 최소, 최대 2 📍 백준 20053 - 최소, 최대 2 백준 20053 - 최소, 최대2 ⚡️ 나의 풀이 주어진 테스트 케이스만큼 while문을 사용하여 각 케이스마다 입력을 받아 최소, 최대 값을 출력하게 만들었다. import sys input = sys.stdin.readline T = int(input()) while T: N = int(input()) arr = list(map(int, input().split())) print(min(arr), max(arr)) T -= 1 2021. 4. 26.
[ 파이썬(python) ] 백준 11659 - 구간 합 구하기4 📍 백준 11659 - 구간 합 구하기 4 백준 11659 - 구간 합 구하기4 ⚡️ 나의 풀이 이 문제를 그냥 구현한다면 시간 초과에서 벗어나지 못할 것이다. 바로 시간 복잡도가 높기 때문인데, 이럴 때 시간 복잡도를 낮출 적절한 알고리즘이 바로 prefix_sum이다. prefix_sum의 난이도는 어렵지 않다. 서두에서 말했듯이 이 문제를 prefix_sum을 사용하지 않고 구현할 때 M, N의 입력 범위가 100,000이 넘어간다면 시간 복잡도는 O(MN)이 되므로 1초 내에 구현할 수가 없다. 알고리즘을 설계할 때마다 고려해야 하는 점은 여러 번 사용될 만한 정보는 미리 구해서 저장해 놓을수록 유리하다. 구현 방법은 간단한데, 각각의 합들을 새로운 배열에 저장해뒀다가 나중에 입력에 구간이 들어오.. 2021. 4. 23.
[ 파이썬(python) ] 이것이 코딩 테스트다 - 구간 합 계산(Prefix_sum) 📍 백준 11659 - 구간 합 구하기 4 백준 11659 - 구간 합 구하기4 ⚡️ 나의 풀이 이 문제를 그냥 구현한다면 시간 초과에서 벗어나지 못할 것이다. 바로 시간 복잡도가 높기 때문인데, 이럴 때 시간 복잡도를 낮출 적절한 알고리즘이 바로 prefix_sum이다. prefix_sum의 난이도는 어렵지 않다. 서두에서 말했듯이 이 문제를 prefix_sum을 사용하지 않고 구현할 때 N, M의 입력 범위가 100,000이 넘어간다면 시간 복잡도는 O(NM)이 되므로 1초 내에 구현할 수가 없다. 알고리즘을 설계할 때마다 고려해야 하는 점은 여러 번 사용될 만한 정보는 미리 구해서 저장해 놓을수록 유리하다. 구현 방법은 간단한데, 각각의 합들을 새로운 배열에 저장해뒀다가 나중에 입력에 구간이 들어오.. 2021. 4. 23.