일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 백준 카드1
- til
- python 1259
- 99항해
- 스택
- softeer
- 백준 막대기
- 항해99
- 99클럽
- 큐
- 일곱 난쟁이
- 구현
- 개발자 취업
- python 2309
- Python 20001
- 백준 2309
- 코딩테스트 준비
- 파이썬
- python 10250
- leetcode
- Python
- python 14503
- 프로그래머스
- BOJ
- boj 2309
- leetcode 2405
- BFS
- 백준 팰린드롬수
- python 10989
- Today
- Total
목록문제 풀이/백준 (21)
동까의 코딩
스택 문제 중 하나인 막대기를 풀어보았다. https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 스택에 다 넣어주고 빼면서 높은 건물이 나올때 기준 높이를 바꿔주면 될 것 같다. 오른쪽부터 시작하니 맨 오른쪽을 기준 높이로 잡고 왼쪽으로 하나씩 확인해 나간다. import sys input = sys.stdin.readline N = int(input()) stack = [] cnt = 1 for _ in range(N): num = int(input()..
오늘은 구현 문제를 풀어보았다. https://www.acmicpc.net/problem/20001 20001번: 고무오리 디버깅 백준 문제 풀이에 힘들어하는 수진이를 위해 민우는 문제해결에 도움이 되는 고무오리를 준비했다. 민우가 준비한 고무오리는 신비한 능력이 존재하는데, 최근에 풀던 백준 문제를 해결해주는 www.acmicpc.net 간단한 구현 문제도 많이 풀어보는 것이 생각 넓히기에 좋다고 하기에 당분간은 간단한 구현문제 80 : 난이도 있는 문제 20프로 비중으로 풀어줄 것이다. - 풀이 stack = [] while True: s = input() if s == '문제': stack.append(1) elif s == '고무오리': if not stack: stack.append(1) sta..
오늘의 문제 중 하나인 숫자 카드 2 문제를 풀어보았다. 문제만 읽고 답변을 작성하니 처음엔 쉽다..라는 생각이 들고 제출하니 시간초과가 나왔다.... https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net N, num_list = int(input()), list(map(int, input().split())) M, cnt_list = int(input()), list(map(int, input().split())..
오늘의 문제인 침투를 풀어보았다. 기본적인 BFS & DFS로 풀 수 있었다. 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 dfs 풀이 import sys sys.setrecursionlimit(3000000) def dfs(y, x): per_lst[y][x] = 2 for dy, dx in d: Y, X = y+dy, x + dx if (0
스택과 큐 문제 중 하나인 키로거 문제를 풀어보았습니다. 난이도는 중정도로 될 것 같습니다. https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 풀이 방식은 스택을 두 개로 사용하는 방법을 선택하였습니다. 처음에는 시뮬레이션 그대로 코딩을 짜주다가 시간 제한이 뜨게 되어 스택을 사용하는 방법을 찾아보았더니 간단한 해답이 나왔습니다. 왼쪽 스택과 오른쪽 스택으로 나눠주어 그 사이에 커서를 두고 진행하면 간단합니다. 단어를 넣거나 뺄 때는 왼쪽..
오늘은 프린터 큐 문제를 풀어보았습니다. 문제는 구조는 기본 Queue의 자료구조인 FIFO - First In First Out를 문제로 만들었습니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 풀이 방법으로는 deque를 사용해서 최대한 queue에 중점을 주고 문제를 풀었습니다. 1. 먼저 m의 위치를 기억해 주고, 위치를 옮겨줄 때마다 위치를 업데이트해 준다. 2. 가장 큰 값이 먼저 나가므로 맨 앞에 가장 큰 값이 오면 pop을..
기본 스택 문제 중 하나인 스택 수열 문제를 풀어보았습니다. https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제를 처음 보았을 땐 이해가 되지 않았지만 아래 힌트를 보고 풀이를 하였습니다. 제일 먼저 입력된 숫자만큼 count를 해줘서 push를 진행해 주고, 해당 숫자가 나오면 반복문을 탈출하여 pop을 진행하고 숫자를 빼내어 줍니다. 예제 1을 예로 들어보면..
오늘은 기본 구현 문제인 음계 문제를 풀어보았습니다. https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 풀이 방식은 반복문을 통해 첫 번째를 기준으로 내 다음 숫자보다 크면 ascending, 내 다음 숫자보다 작으면 descending을 통해 분류하는 방법을 택하였습니다. 처음에 리스트를 받아오고, bool로 구성된 ascending과 descending을 True로 설정해 주고 반복문을 돌게 만듭니다...