본문 바로가기

전체 글

(133)
[Python] 백준 12015번. 가장 긴 증가하는 부분 수열2 https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 문제 설명: 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 풀이설계 리스트에서 val을 하나씩 꺼내온다. dp[-1]는 보다 val이 크다면 뒤에 바로 추가해준다. 그렇지 않다면 이..
[Python] 백준 2108번. 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제설명 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 풀이설계 산술형은 sum / 반올림은 round 중앙값은 배열의 중앙값 // 2 최빈값 배열의 길이가 1 이하인 경우 0번째 값 출력 배열의 길이가 1 초과인 경우 Counter ..
[Python] 백준 11651번. 좌표 정렬하기 2 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제설명 x,y 가 주어졌을때 y를 기준으로 정렬하는 문제이다. 풀이설계 2차원 배열을 활용한다. x,y 값을 처음에 y,x로 저장한다. 그 다음 리스트를 sort 한다. 출력 시 y,x -> x,y로 바꿔 출력한다. import sys input = sys.stdin.readline n = int(input()) lst = [] for i..
[Java] Java Map의 내부 구현 파악 Java Map의 내부 구현은 어떻게 이루어져 있을지 추측해보실 수 있을까요? Java에서 Map 인터페이스 도구가 있으며 대표적으로 Map, HashMap, TreeMap, LinkedHashMap이 있다. Map Map은 key-value 구조로 구성되어 데이터를 저장할 수 있다. key를 가지고 저장된 value를 찾을 수 있다. key를 이용하여 데이터 검색에 최적화되어있으나, 동일한 key에 다른 데이터 value가 저장되어 있을 경우 기존에 저장된 데이터는 덮어씌워져 사라진다. 따라서 중복된 key는 존재할 수 없다. HashMap HashMap은 Hash Table 을 이용하여 만들어졌다. HashMap의 핵심은 배열이며, 배열의 각 슬롯은 연결리스트 또는 트리로 이루어져있다. Hash Ta..
[Docker] Docker 부터 docker compose 설치 실행환경 cat /etc/*-release | uniq DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 Docker 설치 sudo apt-get update 필요한 패키지 설치 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common Docker의 공식 GPG키를 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Docker의 공식 apt 저장소를 추가 sudo add-apt-repository "deb [arch=amd64] https://download.docker..
[Spring] EC2에 Docker에 Redis SpringBoot 프로젝트 연동 티켓 예매 프로젝트에 진행하게 되면서 ec2에 redis 및 springboot 배포해야 할 일이 생겼다. 그 중 Spring과 Redis 연결이 잘되지 않아 하루넘게 시간이 걸려서 해결했다. 이 오류만 정말 수십번의 커밋과 푸시 배포과정을 진행했고 결론적으론 해결했다. 현재 redissonLockTicketFacade 클래스에 redis를 이용한 로직이 구현되어있고 마지막 오류메시지를 보면 계속 로컬로 연결되는 문제였다. Error creating bean with name 'redissonLockTicketFacade' defined in URL [jar:nested:/app.jar/!BOOT-INF/classes/!/com/example/yetiproject/facade/RedissonLockTic..
클래스와 인스턴스 클래스와 인스턴스의 차이에 대해 설명해주실 수 있을까요? 클래스(Class)란 클래스(Class)란 Java 프로그램에서 객체를 생성하기 위한 일종의 설계도 객체가 가지는 속성(필드)와 동작(메소드)으로 이루어져 있다. 흔히 붕어빵(객체)를 만들기 위한 붕어빵 틀(클래스)이라고 비유를 한다. 클래스는 필드(Field), 생성자(Constructor), 메소드(Method)로 구성되어 있다. 필드: 객체의 데이터가 저장되는 곳 생성자 : 객체가 실제로 생성될 때 초기화 역할을 담당 메소드: 객체의 동작에 해당하는 실행 블록이다. 인스턴스(Instance)란 클래스가 붕어빵 틀이라면 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스(Instance)라고 부른다. Java 프로그램 실행 시..
[Docker][error] ( Error response from daemon: You cannot remove a running container ) docker container rm [컨테이너] 실행 시 오류가 났다. 해결방법 docker stop 84ac93ee9586 docker rm 84ac93ee9586