본문 바로가기

Algorithm/etc111

[파이썬] 백준 20529: 가장 가까운 세 사람의 심리적 거리 (실버1) [파이썬] 백준 20529: 가장 가까운 세 사람의 심리적 거리 (실버1) 20529번: 가장 가까운 세 사람의 심리적 거리 각 테스트 케이스에 대한 답을 정수 형태로 한 줄에 하나씩 출력한다. www.acmicpc.net 문제 풀이 0.방향성 생각 입력을 받으면서 특정 성격의 개수가 3개가 넘어가면 바로 0을 출력하고 넘어가게 만든다. 비둘기집 원리가 뭔지 몰라도 풀 수 있다. 풀고 태그 찾아봤는데 이런게 있구나 정도면 될듯 사람 수가 많아지면 각 mbti별로 테스트 케이스가 쌓이는데 n=32를 넘어가면 무조건 하나의 케이스에서 같은 성격이 3개 이상이 발생하는 것을 생각할 수 있다. 10**5까지 들어오니까 n>32인 경우는 그냥 잘라낸다. 그 밑의 경우만 잘 세주면 된다. 1. 입력 받기. 케이스 .. 2023. 6. 21.
[파이썬] 백준 1541 : 잃어버린 괄호 (실버2) [파이썬] 백준 1541 : 잃어버린 괄호 (실버2) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제 풀이 0.방향성 생각 첫 번째로 -가 등장하면 그 이후부터는 괄호를 적절히 묶어서 전부 값을 뺄 수 있다. ex) 50-10+50-20+10 = 50 - (10+50)-(20+10) 첫 -의 위치를 찾고 전 후로 나눠서 계산한다 1. - 위치 찾기 s = input() answer = 0 for idx,val in enumerate(s): if val == '-' : start = idx break.. 2023. 6. 20.
[파이썬] 백준 1074 : Z (실버1) [파이썬] 백준 1074 : Z (실버1) 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 풀이 0.방향성 생각 위 예시처럼 n = 3인 경우 43 (7행 1열)을 찾는다고 가정해보자. 0,0에서 시작해서 탐색을 진행한다. 탐색하려는 좌표의 사분면을 찾는다. 그 사분면 기준점으로 이동해서 재귀함수를 호출한다. 1. 전체 코드 import sys sys.setrecursionlimit(10**6) n,row,col = map(int,input().split()) def z(h,w,N): if ro.. 2023. 6. 5.
[파이썬] 백준 1992 : 쿼드트리 (실버1) [파이썬] 백준 1992 : 쿼드트리 (실버1) 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제 풀이 0.방향성 생각 탐색하면서 기준점이랑 다른게 하나라도 나올경우 재귀 호출한다. 괄호의 경우에는 현재 탐색하는 영역에서 기준점과 다른게 하나라도 나올경우 괄호를 열고 탐색하고 괄호를 닫아준다. 0.방향성 생각 1. 전체코드 import sys input = sys.stdin.readline n = int(input()) arr = [] answer = '' for i in range(n): a.. 2023. 6. 5.