"꾸준하고 완벽한 한 걸음"

Data Structures 7

[백준 01270] 전쟁 - 땅따먹기 [Java]

문제1270번: 전쟁 - 땅따먹기 1270번: 전쟁 - 땅따먹기 boj.ma 풀이병사들의 번호가 주어질 때, 과반수를 넘는 병사가 존재하는지 검사하는 문제다.Boyer-Moore Voting으로 과반수가 넘는 병사를 빠르게 찾는 방법으로 풀이했다.병사의 번호가 int 범위보다 크므로 long을 사용하자. long candidate = -1, virtualCnt = 0; for (int i = 0; i 가상의 병사 번호 빈도가 실제로 절반을 초과하는지 검사 후 병사의 번호 또는 “SYJKGW”을 출력하자. long actualCnt = 0; for (long a : A) { if (a == candi..

[백준 14402] 야근 [Java]

문제https://www.acmicpc.net/problem/14402 풀이동명이인을 고려한 전체 출퇴근 기록에 대해 출근 기록과 퇴근 기록이 일치하지 않는 경우를 전부 야근이라 가정하고, 전체 야근 인원을 구하는 문제다.만약 동명이인이 출근을 했다면, 출근한 동명이인의 수를 세주자. // Solve Map map = new HashMap(); int res = 0; while (N-- > 0) { st = new StringTokenizer(br.readLine()); String name = st.nextToken(); String op = st.nextToken(); if..

[백준 02121] 넷이 놀기 [Java]

문제https://www.acmicpc.net/problem/2121 풀이N개의 점에 대해 x, y 축에 평행하는 직사각형의 수를 찾는 문제다.좌표를 한 쌍으로 묶어 집합에 넣어주고, Set set = new HashSet(); for (int i = 0; i 문제의 조건에 부합하는 좌표와 일치하는지 비교하는 방식으로 풀이했다. long cnt = 0; for (Point p : set) { if (set.contains(new Point(p.x + A, p.y)) && set.contains(new Point(p.x, p.y + B)) && set.contains(n..

Stack

목록Stack이란?Python에서 Stack 구현 방법✏️ 연습 문제📚 Stack후입선출(LIFO, Last In, First Out) 구조를 가진 자료구조💡 가장 나중에 삽입된 데이터가 가장 먼저 삭제됩니다! 스택의 주요 연산push(x): 스택의 맨 위에 요소 x를 추가한다.pop(): 스택의 맨 위 요소를 제거하고 반환한다.top() / peek(): 스택의 맨 위 요소를 제거하지 않고 반환한다.size(): 스택에 포함된 요소의 개수를 반환한다.isEmpty(): 스택이 비어 있는지 확인한다.Python에서 Stack 구현 방법Python에서는 내장 자료구조인 list 를 사용해 스택을 구현할 수 있습니다.스택 정의Python의 list를 사용해 stack을 선언합니다.stack = [] # ..

Algorithm 2025.02.19

[백준 01935] 후위 표기식2 [Python]

문제https://www.acmicpc.net/problem/1935 풀이스택을 사용해 후위표현식을 구현하면 된다.우선, 수식의 문자에 대응하는 숫자를 매핑해주자. num = {} for i in range(N): num[chr(ord("A") + i)] = int(input())연산 기호를 입력 받기 전 까지 모든 숫자를 스택에 저장해주고,연산 기호를 입력받으면 스택에 저장해둔 두 수를 꺼내 계산을 한 뒤 다시 스택에 저장하면 된다.이 과정을 반복하면 스택에는 후위 표현식에 대한 계산 결과가 남는다. # Solve stack = [] for f in F: if f.isalpha(): stack.append(num[f]) ..