성장일기

내가 보려고 정리하는 공부기록

분류 전체보기 171

[백준] 10845 : 큐 (Queue와 ArrayDeque) - JAVA

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net # 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1,..

[백준] 18870 : 좌표압축 (Hashmap과 Map) - JAVA

백준 단계별 문제풀이 13단계 (정렬) https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net # 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'..

[백준] 1181 : 단어 정렬 (Comparator, compareTo) - JAVA

백준 단계별 문제풀이 13단계 (정렬) https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net # 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거해야 한다. # 예제 입력 : 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루..

[백준] 11650 : 좌표 정렬하기 (Comparator<int[]> 이차원배열 정렬) - JAVA

백준 단계별 문제풀이 13단계 (정렬) https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net # 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. # 예제 입력 : 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 y..

[백준] 10989 : 수 정렬하기 3 (Counting sort) - JAVA

백준 단계별 문제풀이 13단계 (정렬) https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net # 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. # 예제 입력 : 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수 10 5 2 3 1 4 2 3 5 1 7 출력 1 1 2 2 3 3 4 5 5 7 # 필요개념 이 문제는 시간 제한..

[Spring] 1. 순수 자바로 설계하기 - 스프링 핵심원리 기본편

인프런 김영한 강사님의 스프링 핵심원리 강의를 듣고 정리하고자 한다. 프로그램을 만들 때, 요구사항을 보고 설계를 하듯이 이 강의도 요구사항을 읽고 설계하여 구현하는 방식으로 수업이 진행된다. 순서는 대략 아래와 같이 진행되었다. 요구사항 보고 대략 구조짜기 자바로 구현하기 Spring 입히기 해당 게시글에서는 순수 자바로 구현하는 것까지만 작성해 둘 예정이다. 1. 요구사항 보고 구조짜기 & 다이어그램 그리기 요구사항을 읽어보고 확정 되지 않은 조건은 인터페이스만 설계해 둔다! 추후에 구현하면 되기 때문에 인터페이스만 잘 설계해도 괜찮다. 수업에서 진행한 설계에서는 회원데이터가 자체DB를 구축할지 외부 시스템을 연동할지 확정이 나지 않은 상황이었기 때문에 회원 저장소를 인터페이스로 설계해두고 자체DB와..

백엔드/스프링 2024.01.29

[Spring] 0. 객체지향설계와 스프링

최근 백엔드 공부를 시작하면서 인프런 김영한 강사님의 스프링 핵심원리 강의를 듣기 시작했다. 그에 대한 내용을 정리해보려고 한다. ✅ Spring spring은 자바 기반의 오픈소스 프레임워크이다. 백엔드 공부를 시작하면서 자바 언어를 선택했으면 Spring과 SpringBoot는 공부해야 한다는 말을 정말 많이 들었는데, 이걸 왜 공부해야할까 ? ✅ 스프링의 핵심 자바 언어의 가장 큰 특징은 객체지향언어 라는 점이다. 그래서 우리는 객체지향언어의 장점을 최대한 살려 프로그래밍을 해야하는데, 이때 객체지향언어의 특징을 잘 살려주는 프레임워크가 스프링이다! 스프링은 좋은 객체지향 애플리케이션을 개발할 수 있도록 도와주는 프레임워크이다. 그럼 여기서 좋은 객체 지향 프로그램은 무엇일까 ? ✅ 좋은 객체 지향..

백엔드/스프링 2024.01.28

[백준] 2751 : 수 정렬하기 (Collections.sort()와 Arrays.sort()) - JAVA

백준 단계별 문제풀이 13단계 (정렬) https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net # 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. # 예제 입력 : 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 5 5 4 3 2 1 출력 1 2 3 4 5 ..

[백준] 10951 : A + B (EOF 처리하기) - JAVA

백준 단계별 문제풀이 3단계 (반복문) https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net # 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. # 예제 입력 1 1 2 3 3 4 9 8 5 2 출력 2 5 7 17 7 # 필요개념 겉보기엔 그냥 입력받아서 덧셈연산을 하면 되는 문제이지만, 이 문제의 특이점은 입력 개수가 명시되어있지 않다는 것이다. while문이나 for문을 쓸 때 반복문을 멈추는 조건이 필요하다. for문을 쓸 땐 입력 개수가 필요하고, while문을 쓸 땐 break 조건이 필요한데, 이 문제에는 그런 ..

[백준] 2908 : 상수 (StringBuffer vs StringBuilder) - JAVA

백준 단계별 문제풀이 5단계 (문자열) https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net # 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 ..

728x90