전체 글 175

99클럽 코테 스터디 8일차 TIL + 문자열

https://www.acmicpc.net/problem/9996# 9996 한국이 그리울 땐 서버에 접속하지import sysinput = sys.stdin.readlinen = int(input())pattern = input().split('*')start = pattern[0]end = pattern[1]for _ in range(n): name = input() if len(name) >= (len(start)+len(end)) and name.startswith(start) and name.endswith(end): print("DA") else: print("NE")패턴은 *을 기준으로 시작해야하는 문자와 끝나야하는 문자로 주어진다.시작하는 패턴과 끝..

Algorithm/Problems 2025.04.09

[Spring] 동시성 문제

동시성 문제동일한 하나의 데이터에 여러 스레드가 동시에 접근하여 데이터를 동시에 제어할 때 나타나는 문제로, 하나의 세션이 데이터를 수정 중일 때, 다른 세션에서 수정 전의 데이터를 조회해 로직을 처리하면서 데이터의 정합성이 깨지는 문제 입니다. ex. 재고, 계좌잔액 등 동시성 문제 해결하기Synchronized스레드 동기화를 위해 자바에서 지원하는 기술하나의 공유자원에 동시에 접근하지 못하게 함스레드간 동기화를 시켜 공유되는 데이터가 Thread-safe 하게 함thread-safe ? 멀티 스레드 프로그래밍에서 어떤 함수나 변수, 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없는 것public synchronized void decrease(Long id, int am..

Project/Java 2025.04.09

99클럽 코테 스터디 7일차 TIL + 스택

https://www.acmicpc.net/problem/10799# 10799 쇠막대기import sysinput = sys.stdin.readlinebars = input().strip()stack = []answer = 0for i in range(len(bars)): if bars[i] == '(': stack.append('(') else: stack.pop() if bars[i-1] == '(': # ) 직전 괄호가 (면 레이저 answer += len(stack) else: # ) 직전 괄호가 )면 막대기의 끝 answer += 1print(answer) 스택 자료구조의 특징을 이용했다.열린괄..

Algorithm/Problems 2025.04.08

99클럽 코테 스터디 5일차 TIL + 누적합

https://www.acmicpc.net/problem/2559import sysinput = sys.stdin.readlinen, k = map(int, input().split())temps = list(map(int, input().split()))partSum = sum(temps[:k])result = [partSum]for i in range(n-k): # n개의 수를 k씩 연속합을 구하면 나오는 갯수 result.append(result[i]-temps[i]+temps[i+k])print(max(result)) 합을 기록하는 리스트의 이전값(result[i]) 에서 제일 왼쪽 값 (temps[i])을 제외하고 그 다음값( temps[i+k]) 을 더하면 다음 누적합을 구할 수 있다...

Algorithm/Problems 2025.04.05

99클럽 코테 스터디 4일차 TIL + DFS

https://www.acmicpc.net/problem/2468# 2468 안전영역import sysinput = sys.stdin.readlinesys.setrecursionlimit(10**7)n = int(input())graph = []maxNum = 0 # 입력받은 높이의 최댓값 > 비for _ in range(n): graph.append(list(map(int, input().split()))) maxNum = max(maxNum, max(graph[-1])) # 각 행을 입력받으며 최댓값 구하기# 상하좌우dx = [0,0,-1,1]dy = [-1,1,0,0]def dfs(x,y,num): # num은 비가 왔을 때 잠기는 높이 visited[x][y] = True ..

Algorithm/Problems 2025.04.03

99클럽 코테 스터디 2일차 TIL + DP

https://www.acmicpc.net/problem/14495import sysinput = sys.stdin.readlinen = int(input())fibo = {}fibo[1] = 1fibo[2] = 1fibo[3] = 1for i in range(4, n+1): fibo[i] = fibo[i-1] + fibo[i-3]print(fibo[n]) n이 116 이하 자연수로 시간 초과는 나지 않았다.딕셔너리 자료구조를 이용해 풀이를 하였고 입력 받은 n까지의 수를 미리 구한 후 값을 출력했다.리스트를 사용하지 않으니 인덱스 에러가 날 확률도 적어지지 않았나.... 라는 생각이 든다....

Algorithm/Problems 2025.04.01

99클럽 코테 스터디 1일차 TIL + 소수

https://www.acmicpc.net/problem/1929 import sysinput = sys.stdin.readlinem, n = map(int, input().split())for i in range(m, n+1): if i == 1: continue for j in range(2, int(i**0.5)+1): if i % j == 0 and i != j: break else: print(i) 소수는 1보다 큰 자연수 중 1과 자기자신만 약수로 가지는 수다. (자기자신만 나누어 떨어짐)입력 받은 m부터 n까지 나누어 떨어지는 수가 있는지 확인한다.제곱근까지 계산하지 않으면 시간 초과 가 발생한다.제곱근 이후로는 앞에 ..

Algorithm/Problems 2025.03.31