본문 바로가기
반응형

알고리즘36

[알고리즘/백준] 2010번 플러그 Python 파이썬 아직 초반이라서 그런지 문제들이 단순하다. 멀티탭을 가지고 컴퓨터를 전원에 몇 개 연결할 수 있는지 구하는 문제로 멀티탭의 특징만 잘 안다면 쉽게 풀린다. 멀티탭과 멀티탭을 연결하기 위해서는 1개의 플러그가 필요하다. 고로 각 멀티탭 플러그 갯수 - 1 개만큼 컴퓨터를 전원에 연결할 수 있다. 이때 주의할 점은 마지막 멀티탭은 다른 멀티탭과 연결을 하지 않기 때문에 -1 를 안해도 된다는 점이다. 다음과 같은 코드를 통해 통과하였다. import sys input = sys.stdin.readline N = int(input()) answer = 0 for i in range(N): num = int(input()) answer += (num-1) print(answer+1) 위에서는 따로 마지막 꺼만 .. 2023. 2. 18.
[알고리즘/백준] 1085번 직사각형에서 탈출 Python 파이썬 고민하다가 오늘부터는 게임 개발자가 되고 싶은 만큼 게임 관련 알고리즘을 쭉 풀고 작성할 예정이다. 처음 시작을 끊는 이 문제는 어렵지 않은 단순 비교 문제이다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램으로 여기서 경계선가는 조건은 x = 0 or y = 0 or x = w or y = h 총 4개 중 하나라도 충족되면 된다. 고로 min(min(w-x, h-y), min(x, y)) 이렇게 써서 제일 작은 숫자를 출력해주었다. 다음과 같은 코드를 통해 통과하였다. import sys input = sys.stdin.readline x, y, w, h = map(int, input().split()) print(min(min(w-x, h-y), min(x, y))) 해당 코드를 짤 때 .. 2023. 2. 18.
[python/알고리즘] Softeer(소프티어) 바이러스 풀이 다음 문제의 조건은 아래와 같다. 해당 문제는 단순히 반복문으로 나눠서 풀게 되면 시간초과가 걸린다. 그래서 처음에 해당 방법으로 풀고 답은 맞는데 오류나서 애먹었는데 다른 분의 풀이를 보고 잘못된 점으로 알았다. 해당 문제를 푸는 방법은 여러가지가 있는데 1번째는 분할 정복이라는 방법이고 2번째는 파이썬 함수인 pow를 사용하는 것이다. 여기서는 pow를 이용하여 풀었다. 1번째 방법보다 훨씬 간단하다. pow(base, exp, mod)으로 base를 exp 제곱하는 함수이고 mod 값을 넣으면 거듭제곱을 하면서 나머지 연산을 수행해주는 역할을 해주기 때문에 적어주는 것이 좋습니다. 제출한 코드 : import sys input = sys.stdin.readline K, P, N = map(int, .. 2023. 2. 10.
[알고리즘/백준] 10815번 숫자 카드 Python 파이썬 이 문제는 이분 탐색을 이용하여 푸는 문제이다. 위와 같은 조건을 가지며 여기서 시간 복잡도를 생각해 일일이 비교하여 찾는 것이 아닌(이 방법으로 풀면 시과 초과가 나서 통과가 안된다.) 단축을 위한 알고리즘으로 이분 탐색을 이용한 것이다. 이분 탐색에 대해 자세히 알고 싶다면 아래 링크를 참고하면 좋다. 움직이는 그림을 통해서 이해하기 쉽게 알 수 있다. https://velog.io/@kimdukbae/%EC%9D%B4%EB%B6%84-%ED%83%90%EC%83%89-%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-Binary-Search [알고리즘] 이분 탐색 / 이진 탐색 (Binary Search) 이진 탐색(이분 탐색) 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반.. 2023. 2. 8.
반응형