분류 전체보기

    [백준/알고리즘] #5554:심부름 가는 길[파이썬(python)/수학]

    https://www.acmicpc.net/problem/5554 5554번: 심부름 가는 길 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집 www.acmicpc.net #5554_심부름가는길 total=0 for _ in range(1,5): total+=int(input()) x=total//60 y=total%60 print(x) print(y)

    [LeetCode/리트코드] #1178. Number of Valid Words for Each Puzzle[파이썬(python)/Bitmask/비트마스크]

    https://leetcode.com/problems/number-of-valid-words-for-each-puzzle/ Number of Valid Words for Each Puzzle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 처음에는 문자열 문제인 줄 알고 쉬운 문제라고 생각하고 풀었으나 응 바로 시간초과 ^__^ 시간초과 난 코드 class Solution: def findNumOfValidWords(self, words: List[str], ..

    [LeetCode/리트코드] #96. Unique Binary Search Trees[파이썬(python)/C++/BST]

    https://leetcode.com/problems/unique-binary-search-trees/ Unique Binary Search Trees - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com BST(Binary Search Tree)는 root노드의 왼쪽으로는 더 작은 값, 오른쪽으로는 더 큰 값을 가지는 트리다. 그래서 탐색 순회하기 효율적인 자료구조를 가진다. 노드의 개수를 입력으로 받았을 때 만들 수 있는 BST의 개수를 출력으로 하면 된다. 점..

    [백준/알고리즘] #9663:N-Queen[파이썬(python)/백트래킹]

    https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 처음에 문제 힌트에 퀸 노래 있는 거보고 무슨 문제지 대체..? 싶었다 체스의 퀸을 뜻하는 것이었다. N-Queen 이 문제는 백트래킹에서 대표적인 문제라고 한다. 체스판에서 퀸은 중요한 아이로! 가로 세로 대각선 거리제한 없이 쭉 쭉 뻗어 이동할 수 있는 아이입니다. 퀸 N개가 서로 공격할 수 없는 경우라 하면 가로 세로 대각선에 퀸이 겹치지 않게 하는 경우겠지요 그걸 백트래킹으로 구현해봅니다. 백트래킹은 조건..

    [백준/알고리즘] #16212:정열적인 정렬 [파이썬(python)/정렬]

    https://www.acmicpc.net/problem/16212 16212번: 정열적인 정렬 형준이는 수열을 하나 가지고 있다. 형준이는 수열을 정열적으로 정렬해보려 한다. 과연, 정렬할 수 있을까? www.acmicpc.net 25점을 받은 코드.. 100점 받은 코드는 어떻게 짜야하는지... #16212_정열적인 정렬 N = input() a = list(map(int, input().split())) a.sort() for i in a: print(i,end=' ')

    [백준/알고리즘] #10709: 기상캐스터 [파이썬(python)/구현]

    https://www.acmicpc.net/problem/10709 10709번: 기상캐스터 출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시 www.acmicpc.net 이런 구현문제는 계속 그려보거나 시뮬레이션하면서 풀면 된다. #10709_기상캐스터 H, W = map(int, input().split()) Wstring = [] for _ in range(H): Wstring.append(list(input())) sky=[[-1]*W for _ in range(1,H+1)] cnt=W for k in range(0,W+1)..

    [백준/알고리즘] #1330: 두 수 비교하기[파이썬(python)/수학]

    https://www.acmicpc.net/problem/1330 A,B = map(int,input().split()) print('>') if A > B else print('

    [백준/알고리즘] #16953: A → B [파이썬(python)/그래프/DFS]

    https://www.acmicpc.net/problem/16953 #16953_A->B from collections import deque A, B= map(int, input().split()) def dfs(x,y): q=deque([(x,y)]) while q: num, cnt = q.popleft() if num == B: return cnt if num * 2

    [백준/알고리즘] #1316: 그룹단어체커 [파이썬(python)/문자열]

    https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net #1316_그룹단어체커 N = int(input()) word=[] cnt=N for _ in range(N): word=input() for i in range(0, len(word)-1): if word[i] in word[i+1:]: if word[i]!=word[i+1]: cnt-=1 continue print(cnt) 처음엔 플래그를 두어 참거짓으로 두려고..

    [백준/알고리즘] #17609: 회문 [파이썬(python)/문자열]

    https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net #17609_회문 import sys T=int(input()) def similar(word, start, end): while start < end: if word[start]==word[end]: start+=1 end-=1 else: return 2 return 1 def palindrome(word,start,end): while start

    [백준/알고리즘] #2178: 미로탐색 [파이썬(python)/그래프/BFS]

    https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net #2178_미로탐색 from collections import deque N, M = map(int, input().split()) maze = [] for _ in range(N): maze.append(list(map(int, input()))) def bfs(x,y): dx=[-1,1,0,0] dy=[0,0,-1,1] q=deque() q.append((x,y)) while q: x,y=q.popleft() for i in..

    [백준/알고리즘] #1110: 더하기 사이클 [파이썬(python)/수학]

    https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net #1110_더하기 사이클 n = int(input()) num=n cnt = 0 while (1): ten = num // 10 one = num % 10 plus = (ten+one) % 10 num = one*10 + plus cnt +=1 if (num==n): break print(cnt)

    [백준/알고리즘] #5639: 이진검색트리 [파이썬(python)/트리]

    https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net #5639_이진검색트리 import sys sys.setrecursionlimit(1000000000) input = sys.stdin.readline def postorder(left,right): if left > right: return else: root=preorder[left] div = right+1 for i in range(left+1,right+1): if root

    [백준/알고리즘] #1991: 트리순회 [파이썬(python)/트리]

    https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net #1991_트리순회 import sys input = sys.stdin.readline N = int(input()) def preorder(root): if root != '.': print(root, end='') preorder(tree[root][0])#left preorder(tree[root][1])#right def inorder(root): #중위 if root!='.':..

    [백준/알고리즘] #9934: 완전 이진 트리 [파이썬(python)/트리]

    https://www.acmicpc.net/problem/9934 9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net #9934_완전이진트리 import sys input = sys.stdin.readline K=int(input()) tree = list(map(int,input().split())) bin_tree = [[] for _ in range(K)] def binary_search(tree,depth): if len(tree)==1:#last layer bin_tree[dep..

    [백준/알고리즘] #11279: 최대 힙 [파이썬(python)/자료구조/우선순위 큐]

    https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net #11279_최대힙 #https://www.daleseo.com/python-heapq/ import sys import heapq input = sys.stdin.readline N = int(input()) heap = [] for _ in range(N): num = int(input()) if num==0: if heap: print(heapq.heappop(heap)[..

    [백준/알고리즘] #2475: 검증수 [파이썬(python)/수학]

    https://www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net import sys input = sys.stdin.readline s = [i ** 2 for i in map(int, input().split())] print(sum(s) % 10)

    [백준/알고리즘] #2576: 홀수 [파이썬(python)/수학]

    https://www.acmicpc.net/problem/2576 2576번: 홀수 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지 www.acmicpc.net import sys input = sys.stdin.readline xx=[] for _ in range(7): x = int(input()) if x % 2 != 0: xx.append(x) if xx: print(sum(xx)) print(min(xx)) else: print(-1)

    [백준/알고리즘] #10164: 격자상의 경로 [파이썬(python)/수학/DP]

    https://www.acmicpc.net/problem/10164 10164번: 격자상의 경로 입력의 첫째 줄에는 격자의 행의 수와 열의 수를 나타내는 두 정수 N과 M(1 ≤ N, M ≤ 15), 그리고 ○로 표시된 칸의 번호를 나타내는 정수 K(K=0 또는 1 < K < N×M)가 차례로 주어지며, 각 값은 공백으 www.acmicpc.net 32점을 받아서 부분성공했다... 100점을 어떻게 해야 받는건지 모르겠다.. 점화식 세운다고 굿노트 한장을 꽉 채워서 계속 적어보았는데.. 난 아무래도 돌머리인거같다 허헣 ^___^ #10164_격자상의경로 import sys input = sys.stdin.readline N, M, K = map(int, input().split()) #N:행, M:열 (..

    [백준/알고리즘] #2583: 영역 구하기 [파이썬(python)/그래프/DFS/BFS]

    https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net #2583_영역 구하기 import sys from collections import deque input = sys.stdin.readline M, N, K = map(int, input().split()) #M:세로, N:가로 (상하반전) dy = [-1,1,0,0] dx = [0,0,-1,1] graph = [list([0]*N) for _ in range(M)] def ..