전체 글 80

백준 19583) 싸이버 개강 총회 (python)

https://www.acmicpc.net/problem/19583 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net import sys input = sys.stdin.readline S,E,Q = input().split() S = int(S[:2])*60 + int(S[3:]) E = int(E[:2])*60 + int(E[3:]) Q = int(Q[:2])*60+ int(Q[3:]) res = set() result = 0 while True: try: time, na..

[프로그래머스 lv2] 후보키 (python)

https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import combinations def solution(relations): answer = 0 n,m =len(relations), len(relations[0]) candidates = [] for i in range(1,m+1): candidates.extend(combinations([x for x in range(m)],i)) unique = [] for c..

백준 15686) 치킨 배달 (python)

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net from itertools import combinations n,m = map(int, input().split()) chicken, house = [], [] for r in range(n): arr = list(map(int,input().split())) for c in range(n): if arr[c] == 1: house.append((r,c)) elif arr[..

카테고리 없음 2024.02.26

백준 3190) 뱀 (python)

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net n = int(input()) k = int(input()) #사과개수 arr = [[0]*(n+1) for _ in range(n+1)] for _ in range(k): x,y = map(int, input().split()) arr[x][y] = 1 L = int(input()) info = [] for _ in range(L): X,C = map(str, input().split()) info.a..

[스프링 핵심원리 - 기본편] 섹션8. 빈 생명주기 콜백

빈 생명주기 콜백 시작 커넥션 풀이나, 네트워크 소켓과 같은 애플리케이션 시작 시점에 필요한 연결을 미리 하고, 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료 작업이 필요함. 스프링 빈의 라이프 사이클 객체 생성 → 의존관계 주입 객체를 생성하고, 의존관계 주입이 끝나 다음에 데이터 사용할 준비가 완료 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공 스프링은 스프링컨테이너가 종료되기 직전에 소멸 콜백을 줌 스프링 빈의 이벤트 라이프사이클 스프링컨테이너생성 → 스프링빈생성 → 의존관계주입 → 초기화콜백 사용 → 소멸전콜백 → 스프링 종료 초기화 콜백 : 빈이 생성되고, 빈 의존관계 주입 완료된 후 호출 소멸전 콜백 :..

🍎 Backend/Spring 2024.02.23

[JAVA] 해시 맵

해시(Hash) 해시(Hash)는 입력 데이터를 고정된 길이의 데이터로 변환된 값 해시 값(Hash value), 해시 코드, 체크섬 정수로 변환된 해시는 배열의 인덱스, 위치, 데이터값을 검색할때 활용 해시함수(hash function) 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 해시 함수(Hash function)는 입력받은 데이터를 해시 값으로 출력시키는 알고리즘 자료구조, 캐시, 검색, 에러 검출, 암호 등으로 유용하게 사용 // 해시 함수 예시 Integer hashFunction(String key) { return (int)(key.charAt(0)) % 100; } 해시 테이블(Hash Table) 키 값의 연산에 의해 직접 접근이 가능한 ..

🍎 Backend/JAVA 2023.12.11

[JAVA] 메모리 관리 & call by value

JVM의 자바 메모리 관리 JVM JVM은 컴퓨터가 자바 프로그램을 실행하는 데 사용되는 가상 머신이다. JVM은 메모리 관리를 자동으로 처리하여 자바 애플리케이션의 성능을 최적화한다. 메모리 관리는 Xms와 Xmx라는 JVM 옵션을 사용한다. JVM 메모리 구조 Heap 메모리 모든 자바 클래스, 인스턴스와 배열이 할당되는 메모리 = 런타임 데이터 영역 Heap의 최초 크기 -Xms VM옵션으로 정의 최대 Heap크기 -Xmx 옵션으로 설정 ( 기본적으로 최대 Heap크기는 64MB로 설정 ) Heap은 가비지컬텍터 전략에 따라 고정된 크기, 동적크기가 가능 Non-Heap 메모리 JVM 시작할 때 생성되며 클래스당 구조체(런타임 상수풀, 필드, 함수 데이터, 함수와 생성자 코드, 고정 문자열과 같은 ..

🍎 Backend/JAVA 2023.12.08

[Java] 컴파일 과정

1. 자바의 컴파일과 실행과정 1. 작성된 소스코드(.class)를 자바 컴파일러(javac)가 JVM이 이해할 수 있는 바이트 코드로 변환 2. 컴파일된 바이트 코드를 JVM내부의 클래스 로더가 가져와 동적 로딩을 통해 JVM메모리에 적재 3. JVM메모리에 적재된 바이트 코드를 실행엔진을 통해 실행 2. 클래스 로더 자바는 동적 로드, 즉 컴파일 타임이 아닌 런타임(바이트 코드)를 실행할때 클레스에 로드하고 링크 동적로드를 담당하는 부분이 JVM의 클래스 로더 이다. - 클래스 로더는 런타임 중에 JVM 메소드 영역에 동적으로 Java 클래스를 로드하는 역할 - 클래스 로더에는 로딩,링크,초기화 단계로 나눠짐 로딩 자바 바이트 코드(.class)를 메소드 영역에 저장 로드된 클래스 비롯 부모 클래스 ..

🍎 Backend/JAVA 2023.12.04

[ Restful API ] REST API란?

REST API REST란? REST는 &#39;Representational State Transfer&#39;의 약자 월드 와이드 웹 (WWW) 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 주고 받는 자원(Resource)의 이름을 규정하고 URI에 명시해 HTTP 메서드(GET, POST, PUT, DELETE)를 통해 해당 자원의 상태를 주고 받는다 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다 REST의 구성요소 Resource(자원) - URI 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다. 자원을 구별하는 ID는 HTTP URI이다. Client..

🍎 Backend/Spring 2023.10.22

[백준_13335] 트럭 (python)

문제 링크 https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 나의 풀이 from collections import deque n,w,l = map(int, input().split()) arr = list(map(int, input().split())) truck = deque(arr) bridge = deque([0]*w) cnt = 0 while truck: bridge.popleft() t=t..

네트워크) IP 주소란? (+면접용 정리)

ARP란? ARP (Addresss Resolution protocol) : IP 주소로부터 MAC 주소 를 구하는 IP와 MAC주소의 다리역할을 하는 프로토콜이다. 논리적 주소 -> ARP -> 물리적 주소 물리적 주소 -> RARP -> 논리적 주소 ––– 브로드캐스트 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식 ––– 유니캐스트 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식 ––– 라우팅 IP 주소를 찾아가는 과정 라우팅 테이블 라우팅 테이블(routing table)은 송신지에서 수신지까지 도달하기 위해 사용되며 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트 게이트웨이 게이트웨이(gateway)는..

🍋 CS 2023.09.02

1장. 네트워크 기초

## 네트워크 기초 네트워크 : 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합 => 상호작용 (Networking) - 노드 : 서버, 라우터, 스위치 (=네트워크 장치) - 링크 : 유선, 무선.. ### 처리량과 지연 시간 - 처리량 : 링크 내에서 성공적으로 전달된 데이터의 양 => `많은 트래픽을 처리한다 = 많은 처리량을 가진다` - 트래픽이 많아졌다 = 흐르는 데이터가 많아졌다 - 처리량이 많아졌다 = 처리되는 트래픽이 많아졌다 - 대역폭 : 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 - 지연시간 : 요청이 처리되는 시간, 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간 - 매체 타입(유선,무선), 패킷 크기, 라우터 패킷 처리 시간 ### 네트워크 ..

🍋 CS 2023.08.27