분류 전체보기
-
[프로그래머스] 예상 대진표 -Java알고리즘 문제 풀이 2024. 5. 2. 22:48
문제 - 예상 대진표https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명 제한사항 입출력 예NABanswer8473 접근 방법 - 이 문제는 어떠한 자료구조를 이용해서 푸는 문제가 아니라 그냥 연산 만으로 풀 수 있는 문제라고 생각한다- 하지만 규칙을 잘 봐야하는데 입출력 예 에서 N이 8 이다 그럼 (1, 2) (3, 4) (5, 6) (7, 8) 이렇게 붙게 되고 그 다음으로 넘어가게 된다근데 여기서 1, 2 번 중에 어떠한 한명이..
-
[백준] 1991 트리 순회 - Java알고리즘 문제 풀이 2024. 5. 1. 16:49
문제 - 트리 순회https://www.acmicpc.net/problem/1991 입력첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파벳 대문자로 매겨지며, 항상 A가 루트 노드가 된다. 자식 노드가 없는 경우에는 .으로 표현한다. 출력첫째 줄에 전위 순회, 둘째 줄에 중위 순회, 셋째 줄에 후위 순회한 결과를 출력한다. 각 줄에 N개의 알파벳을 공백 없이 출력하면 된다. 예제 입력7A B CB D .C E FE . .F . GD . .G . . 예제 출력ABDCEFGDBAECFGDBEGFCA접근 방법 - 이 문제는 자료 구조 트리에 대한 기본적..
-
[백준] 11279 최대 힙 - Java알고리즘 문제 풀이 2024. 4. 30. 15:04
문제 - 최대 힙 https://www.acmicpc.net/problem/11279 문제 설명 입력첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 2^31보다 작다. 출력입력에서 0이 주어진 횟수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인데 가장 큰 값을 출력하라고 한 경우에는 0을 출력하면 된다. 예제 입력130120032100000 예제 출력02132100접근 방법- 일단 문제를 보면 배열에 자연수를 넣고 배열에서 가장 큰 값을..
-
SOLID 원칙Spring Core 2024. 4. 30. 00:08
- 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것 SRP 단일 책임 원칙- 한 클래스는 하나의 책임만 가져야 한다- 하지만 하나의 책임이라는 것은 모호하다- 클 수 있고, 작을 수 있다- 문맥과 상황에 따라 다르다- 여기에서 중요한 기준은 변경이다 -> 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP 개방 - 폐쇄 원칙- 소프트웨어 요소는 확장에는 열려 있고 변경에는 닫혀 있어야 한다- 다형성을 활용하면 된다- 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현문제점- 구현 객체를 변경하려면 클라이언트 코드를 변경해야 한다- 객체를 생성하고 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다-> 이걸 스프링 컨테이너가 해준다 LSP 리스코프 치..
-
[프로그래머스] 구명보트 - Java알고리즘 문제 풀이 2024. 4. 29. 16:40
문제 - 구명 보트https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명 제한 사항 입출력 예peoplelimitreturn[70, 50, 80, 50]1003[70, 80, 50]1003 접근 방법 - 문제에 구명보트를 최대한 적게 사용하여 모든 사람을 구출한다 라고 봤을때 최적의 값을 구하는 알고리즘 중에서 탐욕법(그리드)을 생각 할 수 있다- 한 구명 보트 당 최대 2명 사용할 수 있다고 한다- 자료구조는 특별한거 없이 배열로 사용 하면..
-
[묘공단] 코딩 테스트 합격자 되기 3주차[묘공단] 코딩 테스트 합격자 되기 책 정리 2024. 4. 29. 01:14
이 글은 책 코딩테스트 합격자 되기 - 자바편 (골든래빗 - 김희성저)의 내용이 포함되어있습니다. 1. 큐1) 개념큐는 줄을 서다 라는 뜻을 가지고 있다선입 선출 즉, 먼저 들어간 데이터가 먼저 나오는 자료구조 이다 - FIFO- 삽입하는 연산은 Enqueue, 꺼내는 연산을 Dequeue 라고 한다- 큐의 동작방식은 작업 대기열, 이벤트 처리 등등 많이 활용한다 2) 과정 1. 빈 큐 하나 선언Queue queue = new LinkedList(); 2. 데이터 삽입 queue.add(3);queue.add(2);queue.add(4);queue.add(1); -삽입을 하면 3부터 순서대로 삽입을 한다.- 위 코드 처럼 순서는 3, 2, 4, 1 이 되겠다 3. 데이터 삭제queue.poll(); -..
-
[자료구조] Queue의 구현체 (우선순위 큐)자료구조 2024. 4. 28. 20:11
- 말하기에 앞서 Queue는 interface 형태로 Collection 클래스를 상속하고 있다 - 자료구조 중에서 선형구조인 큐는 일반 큐와 우선순위 큐로 나뉘어진다 선형구조(Linear Structure), 큐(Queue)💡 선형 구조 - 데이터를 저장하기 위한 기본적인 형태로 데이터가 일렬로 나열 되어 있을 뿐만 아니라 데이터 간에 순서가 있고 논리적으로 이어져 있는 구조를 의미한다 💡 큐 - 큐는 선입선출의 특성을 가지고 있다큐에 대해서 좀 더 자세하게 알고 싶으면 아래 포스팅을 확인하면 된다 https://hyeonni.tistory.com/24 Queue란? from javaQueue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된..
-
[백준] 5430 AC - Java알고리즘 문제 풀이 2024. 4. 28. 01:25
문제 - AC https://www.acmicpc.net/problem/5430 문제 설명 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 100이다.각 테스트 케이스의 첫째 줄에는 수행할 함수 p가 주어진다. p의 길이는 1보다 크거나 같고, 100,000보다 작거나 같다.다음 줄에는 배열에 들어있는 수의 개수 n이 주어진다. (0 ≤ n ≤ 100,000)다음 줄에는 [x1,...,xn]과 같은 형태로 배열에 들어있는 정수가 주어진다. (1 ≤ xi ≤ 100)전체 테스트 케이스에 주어지는 p의 길이의 합과 n의 합은 70만을 넘지 않는다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한..