백준 54

백준 8911 - 거북이 [Python]

www.acmicpc.net/problem/8911 8911번: 거북이 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져 www.acmicpc.net 단순 구현문제다. 거북이가 간 점들의 최대, 최소가 되는 x좌표와 y좌표로 직사각형의 넓이를 구할 수 있다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import sys input = sys.stdin.readline t = int(input()) def fr(): k[0] = min(no..

백준 문제풀이 2021.03.29

백준 1655 - 가운데를 말해요 [Python]

www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 중앙값을 기준으로 우선순위 큐 두 개를 만들어주고 풀었다. 코드 더러워지는거 싫어서 hpp = heapq.heappop hps = heapq.heappush 라고 미리 써두고 풀었다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import heapq, sys input = sys.stdin.readline hpp..

백준 문제풀이 2021.03.22

백준 21133 - N-Queen 2 [Python]

https://www.acmicpc.net/problem/3344 3344번: N-Queen 첫째 줄에 N이 주어진다. N은 8, 26, 213, 2012, 99991, 99999중 하나이다. www.acmicpc.net www.acmicpc.net/problem/21133 21133번: N-Queen 2 N개의 줄을 출력해야 한다. i번째 줄에는 하나의 정수를 출력해야 하고, 이 정수는 i번째 행에 있는 퀸이 있는 열의 번호이다. www.acmicpc.net 왜 또 constructive지? 3344랑 코드는 같다. 6k+2, 6k+3에서 안되는거 알고 찾다가 도저히 모르겠어서 위키에서 찾고 그대로 구현했는데.. 좀 그렇다... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17..

백준 문제풀이 2021.03.12

백준 20913 - Mixtape Management [Python]

www.acmicpc.net/problem/20913 20913번: Mixtape Management Output $n$ distinct integers in lexicographically increasing order, your sequence of filenames. All numbers must be positive integers less than $10^{1000}$ and may not contain leading zeroes. Any valid sequence of filenames will be accepted. www.acmicpc.net 이런 구성적은 재밌어서 좋다 노트에 조금 끄적이다 보면 두 개의 숫자만으로도 풀수있다는 사실을 금방 알 수 있다. 나는 1과 2로 풀었다. n번째 단..

백준 문제풀이 2021.02.09

백준 19240 - 장난감 동맹군 [C++]

www.acmicpc.net/problem/19240 19240번: 장난감 동맹군 당신은 N개의 동물 장난감을 이용하여 모의 전쟁 놀이를 하려고 한다. 장난감은 편의상 1부터 N까지 번호가 붙어있고, 당신은 이를 두 개의 동맹군으로 나누고 싶다. 다만 특정 장난감끼리 사 www.acmicpc.net [DFS를 이용한 내 풀이] 1번 정점부터 dfs를 돌며 방문하지 않은 정점에 대해 팀의 색을 돌아가면서 입혀주었다. 그 후, 모든 간선에 대해 두 정점의 색이 같은지 확인해주었다. 파이썬으로 하니까 터져서 c++로 풀었다. [소스 코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ..

백준 문제풀이 2021.01.20

백준 16161 - 가장 긴 증가하는 팰린드롬 부분수열 [Python]

www.acmicpc.net/problem/16161 16161번: 가장 긴 증가하는 팰린드롬 부분수열 팰린드롬 수열이란 앞에서부터 읽을 때와 뒤에서부터 읽을 때 똑같은 수열을 말한다. 수열 {13, 25, 3, 25, 13}, {9, 5, 5, 9}는 팰린드롬이고, {1, 2, 3, 4, 5, 6, 7, 6}, {1, 2, 5, 4, 2}, {1, 1, 3, 2, 4}는 팰린드 www.acmicpc.net 개꿀잼 애드혹이다 길이가 1인 수열은 무조건 증가하는 팰린드롬 수열이다. 문자열의 중심을 잡고, 그 중심을 기준으로 바깥쪽으로 한 칸씩 이동하여 두 수가 같은지와, 증가하는 팰린드롬 수열인지를 확인하면 된다. 문자열의 길이가 짝수일 때와 홀수일 때를 나누어 풀었다. 1 2 3 4 5 6 7 8 9 1..

백준 문제풀이 2021.01.06

백준 20531 - 인간관계 [Python]

www.acmicpc.net/problem/20531 20531번: 인간관계 S인터넷고등학교에는 $N$명의 학생이 있다. 이들 사이에 몇몇은 서로 친구 관계를 맺고 있다. 친구 관계는 다음 세 가지 조건을 만족한다. 모든 학생은 자기 자신의 친구이다. 학생 $x$가 학생 $y$ www.acmicpc.net 벨 수를 알고있으면 좋다. union find를 활용한 dp문제이다. 차근차근 풀어보자 1. 점화식 dp[i][j] = (i개의 그룹을 j개로 묶는 경우의 수) 라고 하면, dp[i][j] = dp[i-1][j] * j + dp[i-1][j-1] 라고 점화식을 세울 수 있다. 나는 미리 dp 배열을 채워두고 시작했다. 2. 그룹의 수 세기 그룹의 개수를 n으로 두고 시작해보자. 두 사람이 입력으로 주어..

백준 문제풀이 2021.01.04

백준 20529 - 가장 가까운 세 사람의 심리적 거리 [Python]

www.acmicpc.net/problem/20529 20529번: 가장 가까운 세 사람의 심리적 거리 각 테스트 케이스에 대한 답을 정수 형태로 한 줄에 하나씩 출력한다. www.acmicpc.net n>32일때는 비둘기집 원리에 따라서 0을 출력했고, n 32: print(0) else: for i in range(n): for j in range(n): for k in range(n): tmp = 0 if i == j or j == k or i == k: continue for x in range(4): if a[i][x] != a[j][x]: tmp += 1 if a[j][x] != a[k][x]: tmp += 1 if a[i][x] != a[k][x]: tmp += 1 ans = min(tmp,..

백준 문제풀이 2021.01.04

백준 20528 - 끝말잇기 [Python]

www.acmicpc.net/problem/20528 20528번: 끝말잇기 욱제는 준원이랑 끝말잇기를 하고 있다. 준원이가 시작하자마자 '스트론튬'을 외쳐서 욱제는 피가 거꾸로 솟았다~ 솟으면 백두산~ 백두산은 높아~ 높으면 비행기~ 비행기는 빨라~ 빠르면 기차~ www.acmicpc.net 어자피 주어진 문자열의 첫 글자와 마지막 글자는 같으니 주어진 문자열의 첫 글자를 세트에 집어넣었다. 1 2 3 4 5 6 7 n=int(input()) a = list(map(str,input().split())) q = set() for i in range(n): q.add(a[i][0]) print(1 if len(q) == 1 else 0) cs 오타, 오류 지적 환영합니다.

백준 문제풀이 2021.01.04

백준 14939 - 불 끄기 [Python]

www.acmicpc.net/problem/14939 14939번: 불 끄기 전구 100개가 10×10 정사각형 모양으로 늘어서 있다. 전구에 달린 스위치를 누르면 그 전구와 위, 아래, 왼쪽, 오른쪽에 있는 전구의 상태도 바뀐다. 전구 100개의 상태가 주어지면 모든 전구를 끄 www.acmicpc.net 비트마스킹 맨 윗줄은 2^10가지의 경우를 모두 테스트하고, 2번째 줄부터 그 위 전구가 켜져있으면 스위치를 누르는 방식으로 쭉 진행하면 된다. 그러고 마지막줄까지 진행한 후, 마지막줄에 켜져있는 전등이 있는지 확인하면 된다. 레퍼런스 당해서 힘들었다.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3..

백준 문제풀이 2020.12.25