백준

    [백준/BOJ]#13565:침투[DFS/그래프/깊이우선탐색/파이썬/python]

    https://www.acmicpc.net/problem/13565 13565번: 침투 첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않 www.acmicpc.net 메모리 초과의 늪에서 못 빠져나오게 한 문제,,, 대체 코드에 문제가 없는데 왜 이러는건가 재귀탐색제한을 줄여도 보고 30분을 헤매었는데,, 결국 컴파일러를 pypy3가 아닌 python3 으로 바꾸니 통과했다;;; 백준에서 이런 경우가 간혹 있는데 이럴때마다 시간이 아깝고 힘 빠진다^^;; 승부는 내야하니 정답은 내야겠고,, bfs보다는 dfs로 푸는 게 더 ..

    [백준/BOJ/알고리즘/파이썬(python)]#1978_소수 찾기[수학/에라토스테네스의 체]

    https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 에라토스테네스의 체: 에라토스테네스의 체는 소수를 찾는 방법으로 알고리즘은 다음과 같다. x의 배수를 모두 지우고(위의 사진처럼 컬러링) 마지막으로 살아남은 녀석들이 소수(prime number)다. import sys input = sys.stdin.readline N = int(input()) num_list = [] num_list=map(int, input().split()) prime_cnt=0 for i in num_list: #에리토스테네스의 체 fla..

    [백준/BOJ/알고리즘/파이썬(python)]#11725_트리의 부모 찾기[트리/그래프]

    https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 루트 1부터 시작해서 dfs로 탐색하는 알고리즘으로 풀었다. 방문유무 정보 저장하는 배열을 하나 만들고 방문하지 않았다면 부모노드를 업뎃하면서 dfs탐색하면 된다. 재귀로 한 번 풀고 큐로 한 번 풀었다. 파이썬 코드_재귀 풀이(recursion) #11725_recursion import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) N = int(input()) tree = [[] for _ in..

    [백준/BOJ/알고리즘/파이썬(python)]#15649,#15650,#15651,#15652_N과M(1)(2)(3)(4)[순열/조합]

    https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net https://www.acmicpc.net/problem/15651 15651번: ..

    [백준/BOJ/알고리즘/파이썬(python)/C++/String]#1652_누울 자리를 찾아라

    https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 문자열을 다루는 문제다. 파이썬에서는 운좋게 넘어간건지 문제가 없었는데, C++에서는 처음에 지나간 자리인지 아닌지 체크해야하는 bool을 넣어야 오류가 안 났다. 파이썬 코드 n = int(input()) cnt_w = 0 cnt_h = 0 room = [] bed = [0,0] for i in range(n): #get input room.append(list(map(str,input..

    [백준/boj/알고리즘/파이썬(python)/C++/DFS]#11724:연결요소의 개수

    https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 그래프이론_너비우선탐색, 깊이우선탐색 BFS DFS 문제 나는 DFS를 이용하여 풀었다. (BFS까지 나중에 풀어봐야지!) 파이썬 코드에서 계속 시간초과가 나서 그 원인을 보니 input() 이었다. 백준에서는 input()함수가 시간초과가 잘 난다고 하니 참고하시길..! sys 라이브러리 import해서 입출력하면 해결된다. 그리고 ..

    [백준/boj/알고리즘/파이썬]#9655:돌 게임

    https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 백준 풀이가 너무 오랜만이라 쉬운문제인데도 한참을 고민했다. 예제가 5와 7인 경우 쭉 트리로 그려보았다. 베스킨라빈스31게임이랑 같은 원리다. 상대방이 해당 숫자가 걸리면 내가 무조건 이기거나 지거나. remain = int(input()) if remain % 2 == 0: print("CY") else: print("SK")