[백준/Python] 2493번 - 탑
·
Algorithm/BaekJoon
import sys input = sys.stdin.readline n = int(input()) b = list(map(int, input().split())) ## 틀린 풀이 # 수신한 탑들의 번호 출력 result = [0] h = 0 # 가장 높은 빌딩의 index for i in range(1,n): if b[h] > b[i]: result.append(h+1) else: result.append(0) # 뒤 차례 기준, 가장 가깝고 + 높은 빌딩 if i != n -1 and b[i] > b[i + 1]: h = i print(*result) 처음에 했던 틀린 풀이... 틀렸습니다가 떴다. 당연했던게 바로 왼쪽 빌딩 1개만 보고, 현재 빌딩보다 높지않으면 0을 넣어준다. 왼쪽에 있는 다른 빌딩..
[백준/Python] 10828번 - 스택
·
Algorithm/BaekJoon
import sys input = sys.stdin.readline stack = [] for _ in range(int(input())): commands = input().rstrip().split() if commands[0] == "push": stack.append(int(commands[1])) elif commands[0] == "pop": print(-1) if not stack else print(stack.pop()) elif commands[0] == "size": print(len(stack)) elif commands[0] == "empty": print(0) if stack else print(1) elif commands[0] == "top": print(stack[-1] if..
[백준/Python] 15903번 - 카드 합체 놀이
·
Algorithm/BaekJoon
import sys input = sys.stdin.readline import heapq n, m = map(int, input().split()) cards = [i for i in map(int, input().split())] heapq.heapify(cards) for _ in range(m): x = heapq.heappop(cards) y = heapq.heappop(cards) heapq.heappush(cards, x+y) heapq.heappush(cards, x+y) print(sum(cards)) 우선 순위 큐를 이용하면 쉽게 풀 수 있는 문제였다!
[자바 객체지향 원리] 6장 - 스프링이 사랑한 디자인 패턴
·
SW Books/스프링 입문을 위한 자바 객체지향의 원리와 이해
캡! 상추다 객체 지향 특성 => 도구 SOLID 설계 원칙 => 도구를 올바르게 사용하는 방법 디자인 패턴 => 요리법, 레시피 이전의 많은 개발자들이 고민하고 정제한 사실 상의 표준 설계 패턴 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 정리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 best practice = 디자인 패턴 스프링을 이해하는데 도움이 될 디자인 패턴! 스프링 프레임 워크 = "자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크" = "OOP 프레임워크" 나는 지금 객체 지향에서 시작해 스프링으로 향하는 Bottom-Up 학습 중! 디자인 패턴은 객체 지향의 특성 중 상속(extends), 인퍼테이스(interface/implemen..
[시스템 설계] 1장 - 사용자 수에 따른 규모 확장
·
SW Books/System Design Interview
배울 내용: 한 명의 사용자를 지원하는 시스템 -> 몇백만 사용자를 지원하는 시스템 설계 Keyword: 규모 확장성 단일 서버 모든 컴포넌트가 단 한 대의 서버에서 실행되는 간단한 시스템부터 설계해보자 웹, 앱, 데이터베이스, 캐시 등이 전부 서버 한 대에서 실행된다 사용자 요청 처리 흐름 1. 사용자는 도메인 이름(api.mysite.com)을 이용해 웹사이트에 접속 이 접속을 위해서 도메인 이름을 도메인 이름 서비스(Domain Name Service, DNS)에 질의하여 IP 주소로 변환하는 과정 필요 DNS는 보통 제3 사업자(third party)가 제공하는 유료 서비스를 이용하게 되므로, 우리 시스템의 일부는 아님 DNS 조회 결과로 IP 주소가 반환됨(그림의 웹 서버의 주소) 해당 IP 주..
[자바 객체지향 원리] 5장 - 객체 지향 설계 원칙 - SOLID
·
SW Books/스프링 입문을 위한 자바 객체지향의 원리와 이해
앞의 3개 장을 통해 객체 지향의 개념과 4대 특성 학습이제 객체 지향 프로그램을 작성할 수 있는 도구 획득! 용도에 맞게 사용하자좋은 도구가 있어도 올바르게 사용하지 않으면 요리를 만드는 작업은 고됨 즉, 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계해 나가는 방법이나 원칙을 배워보자! 객체 지향 언어의 시초: Simula67이 1960년 발표되고 50년 이상 세월이 흐름수많은 시행 착오와 best practice 속에서 객체 지향 설계(OOD; Object Oriented Design)의 정수라고 할 수 있는 5원칙 집대성 SOLIDSRP(Single Responsiblity Principle): 단일 책임 원칙OCP(Open Closed Principle): 개방 폐쇄 원칙LSP(Li..