Java 15

동시성(Concurrency) vs. 병렬성(Parallelism) 차이 / 스레드풀

동시성과 병렬성의 차이를 쉽게 설명하면동시성은 여러 작업을 "동시에 하는 것처럼" 보이게 처리하는 기술 (시간을 쪼개서 작업 전환)을 말하고 병렬성은 여러 작업을 "진짜로 동시에" 실행하는 기술 (하드웨어적으로 다중 처리)를 말한다.  동시성(Concurrency) vs. 병렬성(Parallelism) 차이 개념 동시성 (Concurrency)병렬성 (Parallelism)정의여러 작업(Task)이 논리적으로 동시에 실행됨여러 작업(Task)이 물리적으로 동시에 실행됨실행 방식하나의 CPU 코어에서 여러 작업을 빠르게 전환(Switching)하면서 실행여러 CPU 코어나 스레드를 사용하여 작업을 동시에 처리예시하나의 사람이 전화받으면서 이메일을 읽는 것 (번갈아 가면서 수행)여러 사람이 각각 전화를 받는..

Java/CS 2025.02.24

객체 지향 언어/ 객체 지향 프로그래밍(OOP)

객체 지향 언어 / 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)현실 세계의 사물과 개념을 프로그래밍에서 객체로 표현하며 객체를 중심으로 프로그램을 설계하고 구현하는 방식을 말합니다. 객체현실 세계의 사물이나 개념을 소프트웨어 세계에서 표현한 것을 말합니다.ex)  "자동차"라는 객체에는 속성(색상, 속도)과 행동(가속, 브레이크)이 있음. 클래스객체 지향 관점에서 보는 클래스는, 객체를 만들기 위한 설계도 같은 것이라고 비유할 수 있습니다. ex) "자동차 클래스"로부터 다양한 자동차 객체를 생성할 수 있음 4가지 주요 원칙1. 캡슐화(Encapsulation) 객체의 데이터와 이를 조작하는 메서드를 하나로 묶고, 외부에서 직접 접근하지 못하도록 보호하는 것을 의미..

Java/CS 2025.02.01

백준 N-Queen 9663 Java (Gold 4)

기술 블로그를 쓰게 된다면, 꼭 올리면 좋겠다고 생각한 약 1년전 n-queen풀이이다 ! 이유는, 그 때 일차원 백트래킹에 대한 숙지가 부족해서 직관적인 방법으로 접근을 하였는데 지금 봐도 이 풀이는 이해가 쉽고 깔끔하고, 시간도 양호하다는 점에서 꽤 잘 푼 풀이라고 생각하여 올리게 되었다.문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. *퀸은 상하좌우, 대각선으로 이동이 가능하다 풀이방법백트래킹함수인 nqueen에서 cnt는 현재 배치된 퀸의 수를 나타내며, 즉 행을 의미한다. 왜냐하면 퀸은 좌우 이동이 되므로, 행 안에서는 1개의 퀸밖에 놓지 못한다는 것을 이용해서 배치된..

Java/Algorithm 2025.01.20

프로그래머스 거리두기 확인하기 81302 Java (level 2)

2021 카카오 채용연계형 인턴십 문제 요약5개의 5x5 대기실에서 응시자들이 코로나19 방역 수칙에 맞게 거리두기를 준수했는지 확인하여, 각 대기실에 대해 거리두기가 지켜졌으면 1, 그렇지 않으면 0을 반환. 규칙:응시자(P) 간 맨해튼 거리가 2 이하가 되면 안 됩니다.단, 예외:P 사이에 파티션(X)이 있다면 거리두기를 지킨 것으로 간주.빈 테이블(O)이 있더라도 P가 맨해튼 거리 2 이하로 배치된 경우는 거리두기 미준수.입력:places: 5개의 대기실을 나타내는 2차원 문자열 배열 (각 대기실은 5x5 크기).출력:거리두기가 지켜졌다면 1, 한 명이라도 지키지 않았다면 0을 1차원 배열로 반환.예: [1, 0, 1, 1, 1]제약사항:각 대기실의 크기는 항상 5x5.각 자리에는 다음 중 하나가 ..

Java/Algorithm 2025.01.05

백준 우주 탐사선 17182 Java (Gold 3)

문제 요약모든 행성을 탐사하는 최소 시간 계산입력:행성의 개수 N과 발사되는 행성의 위치 k가 주어진다. N개의 줄에 각 행성 간 이동시간이 주어진다. (출력: 모든 행성을 탐사하기 위한 최소 시간 접근 방식 문제를 처음 보고 , 다익스트라인 줄 알았으나 이미 방문한 행성도 중복해서 갈 수 도 있다 라는 포인트와  N 이 10개 미만이라는 점에서 플로이셜-워셜 알고리즘이 떠올랐다.플로이셜-워셜 알고리즘으로 각 출발점으로부터 행성에 방문할 수 있는 최소 거리를 계산하고, 그리고 나서 이 문제는 출발점(k)가 있으므로 다익스트라로 접근하여 마무리 지었다 !  여기서 문제의 접근 논리는 맞은 것 같았는데, 틀렸습니다 ! 가 떠서 당황스러웠다. 여기서 간과한점이 바로 있었는데,  boolean[] 배열을 Pla..

Java/Algorithm 2024.12.30