ps

    [백준] 1679번: 숫자놀이 풀이

    사용한 기술 스택들: 1679번: 숫자놀이 (acmicpc.net) 1679번: 숫자놀이 홀순이(holsoon)와 짝순이(jjaksoon) 둘이서 숫자 게임을 한다. 예를 들어, 정수 1과 3이 주어지고, 이 둘을 통틀어 5번까지 마음대로 사용하여 그 합을 구하여 1,2,3,…을 만드는 놀이다. 이 경우 먼저 www.acmicpc.net 코드: import sys input = lambda: sys.stdin.readline().rstrip() n = int(input()) l=list(map(int,input().split())) nums = set(l) k = int(input()) dp=[float('inf') for _ in range(l[-1]*k+2)] for i in range(1,l[-1]..

    [백준] 3602번: iChess 파이썬 풀이

    [백준] 3602번: iChess 파이썬 풀이

    사용한 기술 스택들: 3602번: iChess (acmicpc.net) 3602번: iChess The Jury of NEERC’07 quarterfinals is proud to present you a new game — chess patience. This patience is played not with cards, but with black and white square tiles. The goal of the game is to place these tiles on a flat surface so that they form a sq www.acmicpc.net 3602번: iChess 코드 # O(1) import sys input = sys.stdin.readline n,m=sorted(ma..

    [백준] 1182번, 1208번: 부분수열의 합 1,2 파이썬 풀이

    사용한 기술 스택들: 오늘은 1182번과 1208번에 있는 부분 수열의 합 1,2를 풀어보겠다. 비트 마스킹을 이용한 브루트 포스 풀이와 dictionary를 사용해서 시간 복잡도를 √ 만큼 줄여주는 풀이를 해볼 것이다. 1182번: 부분수열의 합 (acmicpc.net) 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 1208번: 부분수열의 합 2 (acmicpc.net) 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ ..

    [백준] 24218번, 24219~24221번, 24222~24228번: Double Crypt 파이썬 풀이

    [백준] 24218번, 24219~24221번, 24222~24228번: Double Crypt 파이썬 풀이

    사용한 기술 스택들: 오늘은 IOI 2001년도 Day 2에 나온 Double Crypt라는 백준에 24218번, 24219~24221번, 24222~24228번으로 올라온 문제를 풀어보려 한다. 10개의 문제를 3구간으로 나눈 이유는 이 구간들을 기점으로 난이도가 바뀌기 때문이다. 문제 설명 이 문제에서는 AES라는 암호화 알고리즘이 있는데 https://www.crocus.co.kr/1230에 있는 블로그에 있으니 구조 설명은 그곳을 참고하도록 하자. 일단 중요한 것은 암호학이 아니라 그 암호화할 때 쓰는 key 값을 어떻게 구할 것인가 이다. 당연히 생각해보면 이건 보안을 위한 알고리즘인데 이게 우리가 뚫을 수 있다면 그건 좋은 알고리즘이 아니다. 다행히, 문제에서는 key값은 앞에 최대 hex 5..

    [백준] 1520번: 내리막 길 파이썬 풀이 (bottom-up, 비재귀)

    [백준] 1520번: 내리막 길 파이썬 풀이 (bottom-up, 비재귀)

    사용한 기술 스택들: 1520번: 내리막 길 (acmicpc.net) 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 이 문제를 풀다가 DFS+DP로 재귀적으로 푸는 방법들만 인터넷에 올라왔길래 백준 질문게시판에서 본 우선순위 큐와 BFS를 접목한 비 재귀 풀이 방법을 소개해 보려고 한다. 처음에 이 문제를 접했을 때 재귀는 좋아하지 않아서 비 재귀(bottom-up) 방법을 찾다가 이런 글을 봤다. 글 읽기 - dfs + dp 말고 bfs + pq로 풀었습니다만, (acmicpc.net) 글 읽기 - df..