본문 바로가기

Category

(130)
[BOJ/백준] 10799번 쇠막대기 | 스택 | 파이썬 문제 풀이 import sys def cutIron(bar): stack = [] cnt = 0 for i in range(len(bar)): if bar[i] == '(': stack.append('(') elif bar[i] == ')': if bar[i-1] == '(': stack.pop() cnt += len(stack) else: stack.pop() cnt += 1 return cnt bar = list(sys.stdin.readline()) print(cutIron(bar)) 스택 자료구조를 사용한 문제. 입력으로 받은 문자열을 리스트 bar로 바꿔 쇠막대기 개수를 세는 함수 cutIron에 넣었다. bar의 길이만큼 반복문을 수행한다. 1) bar[i] 값이 '('이면 쇠막대기의 시작을 ..
[BOJ/백준] 2630번 색종이 만들기 | 분할정복 | 파이썬 문제 풀이 import sys def cutPaper(x, y, n): # x,y좌표와 색종이 크기 global cnt_white, cnt_blue print(x, y, n) for i in range(x, x+n): for j in range(y, y+n): if paper[x][y] != paper[i][j]: cutPaper(x, y, n//2) cutPaper(x, y+n//2, n//2) cutPaper(x+n//2, y, n//2) cutPaper(x+n//2, y+n//2, n//2) return # 호출한 함수는 중복되지 않도록 종료시킴 if paper[x][y] == 1: cnt_blue += 1 else: cnt_white += 1 n = int(input()) paper = [list..
[BOJ/백준] 5430번 AC | 덱 | 파이썬 문제 풀이 import sys from collections import deque T = int(sys.stdin.readline()) for _ in range(T): func = list(sys.stdin.readline().rstrip()) n = int(sys.stdin.readline()) queue = deque(sys.stdin.readline().rstrip()[1:-1].split(",")) if n == 0: queue = deque() error = False cnt_R = 0 for i in range(len(func)): if func[i] == 'D': if queue: if cnt_R % 2 == 1: queue.pop() else: queue.popleft() else: e..
[BOJ/백준] 1874번 스택 수열 | 파이썬 문제 풀이 import sys n = int(input()) target = [int(sys.stdin.readline().strip()) for _ in range(n)] stack = [] res = [] for i in range(1, n+1): stack.append(i) res.append('+') while stack and target: if stack[-1] == target[0]: stack.pop() res.append('-') del target[0] else: break if target: print('NO') else: for i in range(len(res)): print(res[i]) 1부터 n까지의 수로 입력된 수열을 만드는 문제. sys.stdin.readline().st..
[BOJ/백준] 10828번 스택 | 파이썬 (🌠sys.stdin.readline으로 시간 초과 해결) 문제 풀이 import sys n = int(sys.stdin.readline()) stack = [] for i in range(n): cmd = sys.stdin.readline().strip() if 'push' in cmd: stack.append(cmd[5:]) elif cmd == 'pop': if len(stack) == 0: print(-1) else: print(stack.pop()) elif cmd == 'size': print(len(stack)) elif cmd == 'empty': if len(stack) == 0: print(1) else: print(0) elif cmd == 'top': if len(stack) == 0: print(-1) else: print(stack[-1..
[멋쟁이 사자처럼] 자바스크립트 세션 시작 (feat. 투두리스트 만들기) 멋사 세션에서 자바스크립트 사용법을 배운 지 2주째. 세션은 운영진님의 코드를 따라치는 식으로 진행되는데 하다 보니 뭔가 만들고 싶어 졌다. 그래서 만들어본 투두리스트 일요일에 시간 가는 줄 모르고 만들었다. 기획 및 디자인 디자인 작업 전 구현할 기능을 아래와 같이 정리했다. 1) 할 일을 입력하고 추가 버튼을 누르면 리스트에 추가 2) 리스트에서 삭제 버튼을 누르면 요소 삭제 3) 리스트에서 체크 박스를 누르면 완료 표시 4) 날씨 API 사용해서 지역 및 현재 날씨 표시 디자인은 Figma를 사용했다. 이제 PPT로 디자인은 그만😇 사용 폰트: Open Sans 사진 출처: @Seokiski_film 디자인 아이디어는 친구가 며칠 전 찍은 사진에서 얻었다. 김작가 넌 최고야 사진에 맞춰서 체크박스도..
[BOJ/백준] 1697번 숨바꼭질 | BFS | 파이썬 문제 풀이 from collections import deque def bfs(start, end): queue = deque() queue.append(start) while queue: x = queue.popleft() if x == end: return visited[x] for nx in (x-1, x+1, x*2): if 0
[BOJ/백준] 7576번 토마토 | BFS | 파이썬 문제 풀이 from collections import deque def bfs(queue, box): global days dx, dy = [-1, 1, 0, 0], [0, 0, 1, -1] while queue: x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0