Algorithm

·문제풀이/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
[문제] https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net [풀이] 처음 짠 코드는 입력받은 문자열 n의 맨 처음과 맨 끝에서부터 차례대로 일치하는지 비교하는 로직이다. 그러나 n을 뒤집은 값과 n이 같으면 펠린드롬수이기 때문에 [::-1]를 이용해 간단하게 풀 수 있다. [코드] - 간단 코드 if __name__ == '__main__': n = input() while n != '0': if n[::-1] == n: print("yes") else: pri..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net [풀이] 알고리즘에 stack 카테고리가 있어서 stack을 이용해 풀었다. '('일 경우 stack에 쌓아주고, ')'일 경우 pop을 해준다. 만약 ')'이고 stack이 비어있을 경우 미리 선언해둔 flag를 True로 설정하고 조건문을 빠져나온다. 그 후 stack이 비어있고, flag이 True일 경우에는 "YES"를 출력하고 아닐 경우 "NO"를 ..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net [풀이] 간단하게 풀었더니 메모리 초과가 났다 ㅎㅎ list 문제를 풀 때 메모리 제한이 있다면 미리 0으로 초기화 한 틀을 만들어 놓은 후 증감식으로 개수를 세는 것이 유리하다고 한다. [코드] import sys if __name__ == '__main__': check = [0] * 10001 for _ in range(int(sys.stdin.readline())): n = int(sys.stdin..
서채리
'Algorithm' 태그의 글 목록 (8 Page)