본문 바로가기

전체 글

(233)
[SWEA-1210] Ladder1 - Java 사다리를 타서 2가 걸리는 시작지점이 어딘지를 찾는 문제입니다. 밑에서 2를 찾아서 올라가는 방식으로 구했습니다. 한 막대에서 출발한 가로선이 다른 막대를 가로질러서 연속하는 경우가 없기 때문에 왼쪽, 오른쪽, 위의 순서로 방향을 봐주면서 다음 좌표를 업데이트해주면 됩니다. import java.util.Arrays; import java.util.Scanner; public class Ladder1 { static int size = 100; private static boolean isIn(int y, int x) { if(0
[SWEA-1208] Flatten - Java 아무런 알고리즘이 필요없는 간단한 문제입니다. 주어진 횟수만큼 제일 큰 놈에서 제일 작은 놈으로 옮겨주면 됩니다. 가로의 길이가 항상 100개이므로 정렬하면서 가장 큰 쪽을 하나 빼고 가장 작은 쪽을 하나 더하면 됩니다. import java.util.Arrays; import java.util.Scanner; public class Flattern { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String output = ""; int T; T=10; for(int test_case = 1; test_case
[BOJ-11726][DP] 2×n 타일링 - Java 문제 바로가기 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 문제입니다. 점화식을 구해보면 dp[n] = dp[n-2] + dp[n-1] 가 됩니다.. n=4 정도까지 해보니 얼추 나오는디 사실 어떻게 하면 점화식을 잘 구하는지 잘 모르겠슴다 ㅜ //top-down private static int topDown(int n){ if(n == 0 || n == 1) return 1; if(dp[n] != 0) return dp[n]; dp[n] = topDo..
[운영체제] CH3. Process(1) CH3. Process Process is a program in execution 프로세스란 현재 실행중인 프로그램을 말한다. 그리고 프로세스의 현재 상태를 나타내는 모든 것을 프로세스의 문맥(Context) 이라고 한다. 프로세스의 문맥(Context)이란? 프로그램이 무엇을 어떻게 실행했는지, 현재 상태가 어떤지를 정확하게 나타내기 위해 사용되는 개념이다. 특정 시점을 놓고 봤을 때, 이 프로세스가 어디까지 수행을 했는지를 규명하는데 필요하다. 프로세스가 시작되면 그 프로세스만의 독자적인 주소공간을 가지는데, (code data stack) 프로세스가 CPU를 잡게 되면 CPU 내부의 Program Counter가 code의 어느 공간을 가리키고 있고, 인스트럭션을 읽어와서 연산을 수행한다. 현재 ..
[BOJ-1765][DFS] 닭싸움 팀 정하기 - Java 문제 바로가기 1765번: 닭싸움 팀 정하기 문제 닭싸움은 월드의 전통이다. 이번 캠프에서도 어김없이 닭싸움 대회가 열렸다. 그런데, 닭싸움을 하기 위해서는 반드시 누가 우리 편이고, 누가 우리 편이 아닌지를 알아야 할 것이다. 닭싸� www.acmicpc.net BFS 태그에서 찾았는데 DFS로 풀었씀다.. 내 친구의 친구는 내 친구이다. 내 원수의 원수도 내 친구이다. 이 규칙을 잘 생각하고 풀면 됨미다.. friend 그래프와 enemy 그래프를 만들고, N 번을 돌면서 check 배열을 두어 해당 사람을 봐줬는지 체크하면서 봐주면 됩니다.. 뭔서린지 모르겠ㄴㅔ import java.util.ArrayList; import java.util.Scanner; public class Main { sta..
2020 상반기 취준 결산 개판이구먼.. 막학기 20학점 들으면서 취준을 해보앗다. 20학점들으면서 취준하기 빡세더라... 하지만 이것도 결국 핑계다... 내가 가고 싶은 곳이 어떤 사람을 원하는지도 모르고 막쓰고 막냈다. 운좋게 내가 가고 싶은 곳에서 요구하는 역량을 키울 수 있는 SSAFY에 선발되어서 다행이다. 서류 전형 SK하이닉스 IT삼성전자 무선사업부 SW개발 - 서류는 당근빳다로 붙을 줄 알고 코테 준비 열심히 했는데 광탈햇다. 많이들 떨어졌다지만 내가 붙을 사람으로 거듭나자. 현대카드/현대캐피탈/현대커머셜 Software Engineer 취업연계형 인턴 - 코테는 나쁘지 않았다고 생각했는데 서류에서 걸러졌나 보다. 사실 지금 지원서 읽어보면 허접하기 짝이 없다. 잡코리아 컨설턴트한테 별 반개도 못받을듯 웍스모바일 S..
[운영체제] CH2. System Structure(2) 동기식 입출력과 비동기식 입출력 입출력 방식에는 크게 동기식 입출력과 비동기식 입출력으로 나뉜다. 동기식 입출력(Synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에 제어가 사용자 프로그램에 넘어간다. 구현 방법 1 I/O가 끝날 때까지 CPU를 낭비시키는 방법. 매 시점 하나의 I/O만 일어날 수 있다. 구현 방법 2 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는 방법. I/O 처리를 기다리는 줄에 그 프로그램을 줄 세운다. 다른 프로그램에게 CPU를 준다. 비동기식 입출력(Asynchronous I/O) I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고, 제어가 사용자 프로그램에 즉시 넘어간다. 두 경우 모두 I/O의 완료는 인터럽트로 알려준다. I/O는 커널을..
[BOJ-1463][DP] 1로 만들기 - Java 문제 바로가기 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net N이 주어지면 1) 1을 빼거나, 2) 2의 배수면 2로 나누거나, 3) 3의 배수면 3으로 나누는 세가지 액션 중 하나를 해서 1로 만드는 최소 횟수를 구하는 문제입니다. 기본적인 Dynamic Programming 문제입니다.. DP는 메모이제이션(Memoization)이란 기술을 사용해서 풉니다. 메모이제이션이란 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술입니다. DP를 푸는 방법은 크게 Top-Down 방식과 Bottom-Up 방식이 있습니다. Top-..