[BOJ/백준] 9024 두 수의 합 - 파이썬
·
💻 알고리즘/PS
문제 https://www.acmicpc.net/problem/9024 문제풀이 num 배열을 정렬하고 k값 보다 큰지 아닌지 비교해가면서 이분탐색을 진행한다. 그 값이 k보다 크면 mid-1 값을 r로 설정해주고 작으면 min+1 값을 l로 설정해준다. k와 두 수의 합의 차이가 mini 값보다 작으면 mini 값을 없데이트 해주고 cnt=1로 초기화한다. mini 값과 같으면 cnt+=1을 해준다. 코드 import sys input=sys.stdin.readline t=int(input()) for i in range(t): n,k=map(int,input().split()) num=list(map(int,input().split())) num.sort() mini=200000000 for j in..
[BOJ/백준] 20041 Escaping - 자바,파이썬
·
💻 알고리즘/PS
문제 https://www.acmicpc.net/problem/20041 20041번: Escaping 첫 번째 줄에는 경찰의 수 N이 주어진다. 단, 1 ≤ N ≤ 500,000이다. 그 다음 N 개의 줄에는 각 경찰의 초기 위치의 좌표 (xi, yi)가 공백을 사이에 두고 주어진다. 다음 줄에는 도둑의 초기 위치의 좌 www.acmicpc.net icpc 2020 예선 F번 문제로 도둑과 경찰에 대한 정보가 주어졌을 때, 도둑이 경찰에게서 탈출할 수 있는지 판단하는 문제 문제풀이 도둑이 경찰에게서 가장 멀리 달아날 수 있는 방법은 4 방향 중 한 방향으로 직진 하는 방법이다. 각 경찰에 대해서 위, 아래, 왼쪽, 오른쪽 방향을 탐색한다. 한 번이라도 탈출할 수 있다면 초기 조건에서 탈출 가능한 것 e..
[BOJ/백준] 20047 동전 옮기기 - 자바
·
💻 알고리즘/PS
문제 문제풀이 입력받은 S 배열에서 두 동전을 제외한 배열을 새로 만들고 선택받은 두 동전은 또 따로 temp 배열로 만들어서 T 배열과 비교할 때 사용했다. find 함수를 이용해서 조건에 따라 재귀적으로 풀었다. find 함수 1. s 배열 index 값 + 두 동전 사용 횟수 == n-1이면 탐색 완료, 1을 return 2. index가 n-2인 경우 -> T로 만들 수 없다. 0을 return (ex) oxo 에서 x,o를 뽑아서 oox를 만드는 경우) 3. s[index] == t[index+cnt] 이면 index를 증가시켜서 다음 값을 비교한다. 4. 두 동전 사용 횟수가 2인 경우; 위에서 해당하는 경우가 없었기에 선택한 동전을 새로 넣어 변화를 주어야 하는데 그 럴 수 없으므로 0 re..
[BOJ/백준] 19538 루머 - 파이썬
·
💻 알고리즘/PS
문제 https://www.acmicpc.net/problem/19538 19538번: 루머 예제 1 0분 : 최초 유포자($1$, $6$번 사람)가 루머를 생성한다. 1분 : $1$번 사람은 $2$, $3$번 사람에게 루머를 퍼뜨린다. $2$번 사람은 주변인 $2$명 중 $1$명이 루머를 믿고 있어 루머를 믿게 된다. $3$ www.acmicpc.net 문제풀이 2개의 덱을 사용해서 풀었다. 처음 유포자를 시작으로 새로 루머를 믿는 사람들을 start 덱에 추가하여 덱이 빌 때까지 탐색을 진행했다. 새로 루머를 믿는 사람들의 time 값을 업데이트 해 줄 때에는 즉시 업데이트 해주는 것이 아니라, 따로 que라는 덱에 추가해서 해당 탐색이 끝난 이후에 업데이트를 해주었다. 즉시 업데이트 하는 경우, 다..