목록분류 전체보기 (131)
자바칩
난이도: Silver 1문제: https://www.acmicpc.net/problem/12852 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 아래 링크에 있는 문제를 응용한 문제이다.이 문제를 먼저 풀어보고 해당 문제를 풀면 좀 더 쉽게 풀 수 있을 것이다.https://www.acmicpc.net/problem/1463 위 링크에 있는 문제에서 연산을 하는 횟수의 최솟값을 구하려면 int 타입의 1차원 dp 배열을 만들어서 저장하고, 가장 큰 값을 출력하면 됐..
난이도: Silver 2문제: https://www.acmicpc.net/problem/3085 애니팡처럼 같은 종류가 모이면 그 종류들이 모인 개수를 최대 개수에 갱신하면 된다.다만 애니팡은 3개부터 모여야 하지만 여기에서는 2개가 모이는 것도 최대 개수로 갱신할 수 있다. 주석에 설명을 적어 놓았다.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112..
난이도: Silver 2문제: https://www.acmicpc.net/problem/1138 주석에 써 놓은 설명만 보아도 이해가 될 것이다.바로 코드를 보자.123456789101112131415161718192021222324252627282930313233import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer; public class P1138_한줄로서기 { public static void main(String[] args) throws IOException { Bu..
병렬성(Parallelism)과 동시성(Concurrency)은 컴퓨터 과학에서 서로 관련되지만 다른 개념이다. 이 두 개념은 주로 여러 작업을 동시에 처리하는 방식과 관련이 있다. 병렬성(Parallelism)병렬성은 여러 작업을 실제로 동시에 수행하는 것을 의미한다. 이는 여러 CPU 코어를 이용하여 여러 작업을 동시에 실행하는 방식이다. 병렬성은 주로 대규모 데이터 처리, 과학 계산, 그래픽 처리 등에서 성능을 향상시키기 위해 사용된다. 예시멀티코어 프로세서: 여러 코어를 가진 CPU에서 각 코어가 다른 작업을 동시에 처리하는 것GPU 연산: 그래픽 처리 장치(GPU)는 많은 작은 코어를 사용하여 병렬 처리를 수행한다.장점성능 향상: 여러 작업을 동시에 수행하므로 작업 완료 시간이 단축된다.효율적인..
프로세스와 쓰레드는 컴퓨터 프로그램을 실행하는 두 가지 기본 단위이다. 각 단위는 운영 체제에서 독립적으로 관리되며 고유한 특성을 가진다. 프로세스와 쓰레드의 차이점프로세스정의: 운영 체제에서 실행 중인 프로그램의 인스턴스메모리 관리: 각 프로세스는 독립된 메모리 공간을 가진다. 프로세스 간의 메모리 공유는 기본적으로 불가능하며, IPC(Inter-Process Communication) 기법을 사용해야 한다.오버헤드: 프로세스를 생성하고 관리하는 데는 많은 자원이 소모된다.안정성: 한 프로세스가 실패해도 다른 프로세스에 영향을 미치지 않는다.쓰레드정의: 프로세스 내에서 실행되는 작은 단위의 작업 흐름메모리 관리: 쓰레드는 프로세스 내의 메모리와 자원을 공유한다. 같은 프로세스의 모든 쓰레드는 동일한 메..
AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)AOP는 프로그램의 여러 부분에 걸쳐 공통적으로 사용되는 기능을 모듈화하는 프로그래밍 패러다임이다. 예를 들어, 로깅, 보안, 트랜잭션 관리 등의 기능은 다양한 클래스와 메소드에 걸쳐 필요할 수 있다. AOP는 이러한 공통 기능을 하나의 모듈로 분리하여 코드의 중복을 줄이고 유지 보수를 용이하게 한다. AOP의 목적OOP와 이름이 비슷하여 상반된 개념 같지만, 관점 지향 프로그래밍은 객체 지향 프로그래밍을 보완하기 위해 쓰인다. 기존 객체(Object) 지향은 목적에 따라 클래스를 만들고 객체를 만들었다. 따라서 핵심 비즈니스 로직이든, 부가 기능의 로직이든 하나의 객체로 분리하는데 그치고, 그래서 이 기능들을 어떻게 바라..
채용 공고로 좋은 기업(서비스 기업)인지 판단하는 법 1. 기술스택 2. 대표, 경영진 경력 3. 매출, 당기 순이익 4. CTO 존재 여부 5. 블라인드, 잡플래닛 등 기업 최근 리뷰 (3점~3.3점이 넘어가면 괜찮음) 1. 쓰레드와 프로세스의 차이점은? 메모리 공유 관점에서 가장 큰 차이점은? 우리가 쓰레드를 쓰면 프로세스를 쓸 때보다 좀 더 신경을 많이 써야 되는데 왜일까? 공부를 해보자. 컨텍스트 스위칭이라는 단어에 대해서 아는가? 컨텍스트 스위칭이라는 것이 맨 처음에 왜 나왔을까? 왜 컨텍스트 스위칭을 해야 하는가? 하나의 CPU에서는 몇 개 프로세스가 돌 수 있는가? 하나의 코어를 갖고 있는데 여러개의 프로세스를 동시에 돌리려고 시도를 했다. 그러면 어떻게 해야 하는가? 그래서 컨텍스트 스위..
parellel이랑 concurrency의 의미에 대해서 개념을 잡고 블로그에 글 작성하면서 정리하기 이것은 기본적인 CS적인 측면에서의 용어들이고 이걸 잘 알아야 이후에 이런 GC가 됐던 개발이 됐던 할 때 되게 중요하다. parellel은 병렬이고 concurrency는 동시성. 한글로 이 둘의 차이를 알아야 한다.질문에 답을 잘 하려면 1. 내가 학습해야 되는 내용이 책에 있으면 책을 선택해서 읽는 게 first이다. 그게 가장 탑질도 줄이고 잘 정리된 내용을 읽는 것이기 때문에 시간을 줄여준다. 2. 하지만 그렇지 않은 책들이 있다. 기본적인 코어 지식은 그대로 있되 그 뒤로 엄청 많이 발전했을 것이다. 이런 정보들은 첫번째로는 공식 블로그, 그 다음에 개발 블로그들 그 다음에 회사 기술 블로그...