전체 글

기록.
알고리즘/백준(BOJ)

[백준/파이썬] 10815번 숫자 카드

https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 각 배열을 처음부터 끝까지 탐색하면 시간초과가 나도록 유도하는 문제이다. O(log n)의 시간복잡도를 가지는 이분탐색을 활용해야한다. 상근이가 가지고 있는 숫자카드가 비교할 배열보다 작으니까, 숫자카드에서 수를 하나 뽑아서 상근이의 숫자카드 목록에 있는지 찾아주면 된다. import sys def binary_search(arr, num,left,right): wh..

알고리즘/백준(BOJ)

[백준/파이썬] 1789번 수들의 합

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 풀이는 다음과 같다. 예시로는 200을 들겠다! 200 = 1 + 199이다. 199 = 2 + 197이다. (이미 1을 위에서 써버렸으므로 수를 1증가시키면서 사용) 197= 3 + 194이다. ... 계속하다보면 수가 계속 줄어들어서 45 = 18 + 27 까지 오게 되고 27 = 19 + 9가 되면서 뭔가 이상한 순간이 생긴다. 9는 아까 써버렸는데 또 9가 나온다. 27을 더이상 쪼갤 수 없으므로, 200은 1~18 그리고 27까지해서 총 19개의 자연수로 나눌 수 있다! 즉, 200을 덧셈으로 쪼개나가면서..

알고리즘/백준(BOJ)

[백준/Python] 2163번 초콜릿 자르기

https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿 www.acmicpc.net 이 문제는 그림으로 설명하겠다. 5 x 3 초콜릿의 경우, 우리는 실제 자를 때 4 + 2번만 자르면 된다. (최대한 한번에 자르려고 하기 때문) 하지만, 이 문제는 그렇지 않기 때문에 조각조각에 대해 따로따로 잘라줘야한다. 그래서 곱해주는 것! a와 b는 바뀌어도 된다. 가로 먼저 자르냐, 세로 먼저 자르냐 차이일뿐! input = __import__('sys').stdin.readline..

파이썬

[파이썬] Vscode에서 코딩테스트 환경 설정

vscode를 이용해, 파이썬 언어로 코딩 테스트를 보시는 분들은 문제의 예제를 매번 복사에서 터미널에 붙여넣고, 가독성 떨어지는 터미널 통해서 출력 값 확인하기가 매우 번거로웠을 것이다. input.txt파일과 output.txt 파일을 이용해 입출력을 간단히 설정하는 법을 알아보자! 우선 첫번째, vscode에 접속 -> 디버깅 탭 접속 -> launch.json 접속 후 -> "args": ["","output.txt"] 입력 그리고 두번째, ctrl + , 을 통해서 설정 접속 -> shell 검색 -> "Terminal > Integrated > Default Profile: Windows" 를 찾은 뒤 -> 값을 Command Prompt로 변경 후 vscode 재시작 그러면 설정 끝!! (아..

알고리즘/백준(BOJ)

[백준/Python] 2588번 곱셈

https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 파이썬으로 주 사용언어를 바꿔보려고 한다. (사실 C++도 애착이 깊은 언어라, 둘 다 잘하고 싶은 마음이 크다) 그래서 백준에 있는 파이썬 길라잡이 문제집을 통해 파이썬을 연습하는 중이다. 두 정수를 int형이 아닌 str형으로 받아서 인덱스를 이용해 곱하기 해주면 금방 풀리는 문제이다. import sys a = input() b = input() ans=0 ans = int(a) * int(b[2]) print(ans) ans = int(a) * int(b[1]) print(ans) ans = i..

알고리즘/백준(BOJ)

[백준/C++] 1826번 연료 채우기

https://www.acmicpc.net/problem/1826 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경 www.acmicpc.net 골드3치고는 풀이법이 그렇게 어렵지 않다고 느꼈다. ​ 1. 우선 문제의 입력들을 받은 뒤, 오름차순으로 정렬해준다. 2. 현재 연료량 만큼 전진한다. 연료를 1씩 감소시키며 전진하다가 주유소를 만나면 해당 주유소에서 주유 가능한 연료량을 우선 순위 큐에 저장한다! 3. 연료가 0이 되는 순간, 큐에서 제일 앞에 있는 놈(주유 가능한 연료가 제일 많은 놈)만큼..

beomseok99
beomseok_Oh