분류 전체보기 390

[JAVA] [기타] Pro 시소 짝꿍

문제 https://school.programmers.co.kr/learn/courses/30/lessons/152996#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public long solution(int[] weights) { long answer = 0; Arrays.sort(weights); int cnt=0; for (int i=0; i0 && weights[i-1]==weights[i]){ cnt-=1; answer+=cnt; continue; } cnt=0; ..

문제풀이/기타 2023.07.03

Memory

paging이란 뭔가요? paging은 외부 단편화 문제를 해결하기 위해 나온 개념으로 논리적 주소를 일정한 크기로 나누어 메모리와 매핑하는 방식입니다. 이 방식을 통해 외부 단편화가 해결 되었으나 한 페이지내 사용하지 않는 공간 문제인 내부 단편화가 일어날 수 있어 페이지 크기를 적절하게 정하는 것이 중요합니다 segmentation에 대해서 설명해 주세요 세그멘테이션은 논리적 주소 공간을 논리적 단위인 코드, 데이터, 스택으로 나누어 물리적주소와 매핑하는 방법입니다. [꼬꼬무1] segmentation의 메모리 단편화(Memory fragmentation) 문제에 대해 설명해 주세요 segmentation같은 경우 논리적 단위로 구분하여 필요한 만큼만 할당하기 때문에 내부 단편화는 발생하지 않습니다...

OS 2023.07.03

[JAVA] [구현] 포탑 부수기

문제 https://www.codetree.ai/training-field/frequent-problems/problems/destroy-the-turret/description?page=3&pageSize=20&username= 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import..

문제풀이/구현 2023.07.03

[JAVA] [구현] 백준 15898 피아의 아틀리에

문제 https://www.acmicpc.net/problem/15898 15898번: 피아의 아틀리에 ~신비한 대회의 연금술사~ "피아의 아틀리에 ~신비한 대회의 연금술사~"는 가난한 연금술사 피아의 성장스토리를 담은 게임이다. 이 게임의 가장 중요한 부분은 "대회"인데, 연금술로 높은 품질의 물건을 만들어 상금을 타 www.acmicpc.net 코드 import java.io.*; import java.util.*; public class b15898 { static ArrayList permu=new ArrayList(); public static class Point{ int v; // 품질 char c; // 색 Point(int v, char c){ this.v=v; this.c=c; } } ..

문제풀이/구현 2023.06.30

Process & Thread

Process를 간단히 설명해 주세요 프로세스는 실행 중인 프로그램이란 뜻으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말합니다. [꼬꼬무1] process의 memory영역(code, data, stack, heap)에 대해서 설명해 주세요 프로세스의 메모리 영역은 전역변수, 정적 변수를 저장하는 데이터 영역, 프로그램 코드가 저장되는 코드 영역, 지역변수와 함수 호출에 필요한 정보를 저장하는 스택영역, 런타임 때 동적으로 할당되는 힙 영역으로 나누어져 있습니다. 초기화 하지 않은 변수들은 어디에 저장될까요? 더보기 초기화된 전역변수는 DATA 영역에 초기화 안된 전역변수는 BSS 영역에 저장됩니다. Stack과 Heap 공간에 대해, 접근 속도가 더 빠른 공간은 어디일까요?..

OS 2023.06.29

[JAVA] [구현] Pro 혼자서 하는 틱택토

문제 https://school.programmers.co.kr/learn/courses/30/lessons/160585?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { // 문자 a 기준으로 연속 3개가 이루어졌는지 확인하는 함수 public boolean check(String[] board, char a){ for(int i=0; i

문제풀이/구현 2023.06.29

Hash table & BST

BST에 대해 설명해 주세요 각 노드의 key는 왼쪽 부분 트리의 key보다 크고 오른쪽 부분 트리의 key보다 작다는 규칙을 가진 트리 그래프와 트리의 차이가 무엇인가요? 더보기 트리는 그래프의 한 종류로 그래프 중에서 방향성이 없고 사이클이 없는 그래프를 뜻한다. 이진탐색트리에서 중위 탐색을 하게 되면, 그 결과는 어떤 의미를 가지나요? 더보기 중위 탐색은 1. 왼쪽 자식 노드 2. 부모 노드 3. 오른쪽 자식 노드 순으로 트리를 순회한다. 위 예시를 1 - 3 - 4 - 6 - 7 - 8 - 10 - 13 - 14 순으로 방문하며 오름차순 정렬이 된다. 이진탐색트리의 주요 연산에 대한 시간복잡도를 설명하고, 왜 그런 시간복잡도가 도출되는지 설명해 주세요. 더보기 이진탐색트리의 탐색 연산 시간복잡도는..

TIL 2023.06.28

[JAVA] [수학] Pro 당구 연습

문제 https://school.programmers.co.kr/learn/courses/30/lessons/169198?language=java# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 오른쪽 벽 기준으로 원쿠션이 된다고 가정할 때 공의 이동거리(빨간색 점선)는 (3,7)을 오른쪽 벽 기준으로 점 대칭한 (17,7)과 (7,3)사이의 거리와 같으므로 상,하,좌,우로 쿠션을 주었을 때 최소값을 구하였다. 추가적으로 x축의 수평으로 보낸다고 전부 쿠션이 되기전에 target에 도달하는 것이 아니라 (5,9) -> (5,12) -> (5,8) 같..

문제풀이/기타 2023.06.28

Queue vs Stack

Queue는 어떤 자료구조인가요? 먼저 삽입된 요소가 먼저 삭제되는 자료구조 [꼬꼬무1] Array-Base와 List-Base의 경우 어떤 차이가 있나요? 배열로 이루어진 큐에서는 삽입 삭제를 반복하면서 front, rear에 해당하는 위치가 배열의 크기를 넘어갈 수 없어, front 이전 공간이 남아있어도 더 이상 삽입을 할 수 없습니다. 그러나 연결리스트 기반의 큐 같은 경우 계속 동적으로 연결할 수 있기 때문에 크기 제한이 없습니다. Stack은 어떤 자료구조인가요? 먼저 삽입된 요소가 나중에 삭제되는 자료구조 Stack 두 개를 이용하여 Queue를 구현해 보세요 1. 삽입 연산이 일어나면 stack1에 계속 삽입 2-1. 삭제 연산이 일어날때 stack2가 비어있다면 stack1요소를 전부 s..

TIL 2023.06.27

Array vs LinkedList

Array는 어떤 자료구조인가요? 같은 타입의 요소들이 연속하여 저장된 자료구조로 타입 T와 배열의 크기 N이 주어졌을 때, 배열의 각 요소가 0부터 N-1까지 인덱스에 의해 참조됩니다. [꼬꼬무 1] 미리 예상한 것보다 더 많은 수의 data를 저장하느라 Array의 size를 넘어서게 됐습니다. 이때, 어떻게 해결할 수 있을까요? Array 특성상 한 번 정한 크기는 변경할 수 없으므로 더 큰 크기의 배열을 생성한 후, 기존 array의 데이터를 옮겨야 합니다. Dynamic Array는 어떤 자료구조인가요? 일반 배열과 달리 동적 배열은 초기에 정해진 크기를 넘어서는 데이터를 저장할 수 있고 필요에 따라 크기를 조절할 수 있는 배열입니다. Python에 list, Java의 ArrayList가 대표..

TIL 2023.06.26