문제풀이/BOJ

백준 알고리즘
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1237 1237번: 정ㅋ벅ㅋ 우주를 정ㅋ벅ㅋ할 사람에게는 예제 입력과 예제 출력이 필요하지 않다. www.acmicpc.net [풀이] 심심해서 난이도 없음에 들어갔다가 풀었는데 그냥 웃기다.. 이것도 궁금한 사람이 있을 것 같아서 일단 올린다 하하 [코드] print("문제의 정답");
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net [풀이] 차례대로 주어지는 좌표를 리스트 형식으로 coordinate 리스트에 넣는다. (이중 리스트로 저장됨) lambda를 이용해 sort 기준을 정해준다. 문제에서는 x좌표가 같으면 y좌표가 증가하는 순서로 정렬해야 하기 때문에 다중 조건을 사용했다. 우선 첫 번째 인자인 x[0]을 기준으로 정렬하고 만약 x[0]이 같을 경우 두..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net [풀이] 간단한 문제인데 삼중 for문의 범위 지정이 가장 신경 써야 할 부분 같다. 특정 카드를 한 장 뽑았다면 다시 그 카드를 뽑을 수 없기 때문에 세 반복문의 index가 겹치지 않아야 한다. 세 카드를 더했을 때 m을 넘지 않는 값 중 가장 큰 값을 구해준다. [코드] import sys if __name__ == '__main__': n, m = ..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net [풀이] 1. 보드가 8*8보다 큰 경우 어느 행, 열을 시작점으로 두고 체스판을 만드는지에 따라 다시 칠해야 하는 정사각형의 개수가 달라진다. 따라서 반복문을 통해 a를 행의 시작점으로 잡았을 때와 b를 열의 시작점으로 잡았을 때의 모든 경우를 다 돌아본다. for a in range(n-7): for b in range(m-7): 2. 행과 열의 시작점을 기준으로 8칸씩 체크한..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [풀이] 2021.07.26 - [BOJ] - [Python] BOJ/백준 10845번 큐 [Python] BOJ/백준 10845번 큐 [문제] https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [풀이] 2021.07.26 - [BOJ] - [Python] BOJ/백준 10845번 큐 [Python] BOJ/백준 10845번 큐 [문제] https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [풀이] 클래스로 큐를 선언하고 문제에 나와있는 함수를 구현했다. 시간 단축을 위해 input() 대신 sys.stdin.readline() print() 대신 sys.stdout.write() 를 사용했다. [코드] import sys class queue(): def __init__(self): self.queue = [] self.size = 0 def push(se..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net [풀이] 정렬은 sorted만 쓰면 되는거라 풀이 방식은 아주 간단하다. 문제에서 원하는 부분은 입력받을 때 1번 대신 2번 sys.stdin.readline()을 사용하는 것 #1 input() #2 sys.stdin.readline() 출력할 때는 sys.stdout.write(str(i)+'\n')을 사용하는 것이다. # 1 print(i) #2 sys.stdout.wr..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net [풀이] 처음에 리스트로 큐를 구현해 풀었는데 시간 초과가 낫다. 큐 문제를 풀 때는 dequeue를 import해서 사용하는 게 가장 빠르다고 해서 dequeue를 사용했다. dequeue의 popleft()와 list의 pop(0)은 같은 결과를 낸다. [코드] import sys from collections import deque if __name__ == '__main__': q..
서채리
'문제풀이/BOJ' 카테고리의 글 목록 (9 Page)