🔹1. 큐(Queue) https://ko.wikipedia.org/wiki/%ED%81%90_%28%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0%29 출처:위키백과 FIFO(First In, First Out, 선입선출) = 먼저 들어온 데이터가 먼저 나가는 "공정한" 자료 구조라고 할 수 있다 ex. 줄서기✅ 큐의 특징먼저 넣은 데이터가 먼저 삭제됨 (FIFO)삽입(Enqueue): 큐의 끝에서 추가삭제(Dequeue): 큐의 앞에서 제거✅ 파이썬에서 큐 구현 방법collections.deque 사용 (가장 효율적, 추천! ✅)queue.Queue 사용 (멀티스레드 환경에서 사용 가능)list 사용 (비효율적 ❌, pop(0)은 O(N)이므로 추천하지 않음) from co..
✅ 1️⃣ 기본적인 방향 설정우리가 보통 사용하는 2D 좌표계에서의 방향 이동에 대해 알아보자2차원 리스트(행렬)에서 이동할 때는 (행, 열)로 움직이게 된다방향이동 (행 변화, 열 변화)L (왼쪽)(0, -1)R (오른쪽)(0, +1)U (위쪽)(-1, 0)D (아래쪽)(+1, 0)👉 즉, 이동하면 행(row)과 열(col)이 변화함 # 방향 정의 (L, R, U, D 순서)dx = [0, 0, -1, 1] # 행 변화량dy = [-1, 1, 0, 0] # 열 변화량move_types = ['L', 'R', 'U', 'D']# 초기 위치 (예: (x, y) = (2, 2)에서 시작)x, y = 2, 2# 이동할 명령어 리스트commands = ['L', 'D', 'D', 'R', 'U'] # ..
https://www.acmicpc.net/problem/10989 import sysN = int(input())arr = [int(sys.stdin.readline().strip()) for _ in range(N)]arr.sort()print("\n".join(map(str,arr))) 시간 초과 문제가 발생한다 1. sort 함수 사용2. input() 사용 등의 이유라고 함 이를 해결하기 위해서는, import sys# 입력 빠르게 받기input = sys.stdin.readline# 입력받기N = int(input()) count = [0] * 10001 # 1부터 10,000까지 등장 횟수 저장# 숫자 카운트for _ in range(N): num = int(input()) c..
https://www.acmicpc.net/problem/2869import math#A 달팽이가 낮에 올라가는 거리#B 밤에 미끄러지는 거리#V 높이가 V미터인 막대A,B,V = map(int, input().split())#하루에 A-B 만큼 올라감 +1은 마지막날을 의미함# V-A만큼 올라가는데 필요한 일 수를 계산함days = (V-A) // (A-B) +1if (V-A) % (A-B) != 0: # 나머지가 있다면, 하루를 추가함 days += 1 print(days) 만약 오류가 발생한다면,try: # A 달팽이가 낮에 올라가는 거리 # B 밤에 미끄러지는 거리 # V 높이가 V미터인 막대 A, B, V = map(int, input().split()) #..
https://www.acmicpc.net/problem/2609 import mathdef solution(): a,b = map(int, input().split()) #최대 공약수 gcd_value = math.gcd(a,b) #최소 공배수 lcm_value = (a*b) // gcd_value print(gcd_value) print(lcm_value)최대공약수 (GCD): 두 수의 최대공약수는 두 수가 나누어 떨어지는 가장 큰 수입니다. 이를 구하는 효율적인 알고리즘으로 유클리드 알고리즘을 사용할 수 있습니다. 두 수 a와 b에 대해, gcd(a, b)는 다음과 같이 구할 수 있습니다:gcd(a, b) = gcd(b, a % b)이때, ..
https://www.acmicpc.net/problem/1546 def solution(): N=int(input()) # 시험 본 과목의 개수 scores = list(map(int,input().split())) # 시험 점수 M = max(scores) # 성적 중 최대값 new_score = [(score / M) * 100 for score in scores] new_average = sum(new_score)/N print(new_average)
-- 코드를 입력하세요SELECT O.ANIMAL_ID , O.NAME # 동물의 아이디와 이름을 조회함FROM ANIMAL_INS I # 보호 시작일JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_IDWHERE O.DATETIME https://school.programmers.co.kr/learn/courses/30/lessons/59043 *JOIN*과 **LEFT JOIN*의 차이는 테이블을 결합할 때 어떤 데이터를 포함할지에 따라 달라집니다.JOIN (또는 INNER JOIN): 두 테이블에서 일치하는 행만을 반환합니다. 즉, 양쪽 테이블에 모두 존재하는 데이터만 포함됩니다.LEFT JOIN: 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에 일치하는 행이 없으..
https://school.programmers.co.kr/learn/courses/30/lessons/59042 -- 코드를 입력하세요SELECT O.ANIMAL_ID , O.NAMEFROM ANIMAL_OUTS O # 입양간 기록이 있는 테이블LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID # ANIMAL_OUT 테이블을 기준으로 ANIMAL_INS 와 연결함WHERE I.ANIMAL_ID IS NULLORDER BY O.ANIMAL_ID; # 아이디 순으로 정렬**LEFT JOIN**는 SQL에서 사용하는 조인 유형 중 하나로, 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블과 일치하는 행이 있는 경우 해당 행을 결합하는 방식입니다. 오른쪽 테이블에 일..