본문 바로가기

전체 글160

[Java/백준/DFS와 BFS] 2606 - 바이러스 문제 www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어�� www.acmicpc.net 코드 그냥 BFS 이용했다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; class Main{ static ArrayList[] adjacent.. 2020. 9. 12.
[Java/백준/DFS와 BFS] 1260 - DFS와 BFS 문제 www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 틀린 코드 예제 2번 5 5 3 5 4 5 2 1 2 3 4 3 1 정답>> 3 1 2 5 4 3 1 4 2 5 이어야 하는데... 내 코드는 3 1 2 5 4 3 4 1 5 2 이렇게 나온다. 아마 addEdge할 때 순서대로 LinkedList 안에 넣기 때문에 그런거 같다.. addEdge를 하는 과정을 좀 더 생각해봐야겠다. import java.util.Lin.. 2020. 9. 10.
[자료구조/Java] Queue 구현하기 in Java www.youtube.com/watch?v=W3jNbNGyjMs 선입선출 방식(First-In First-Out, FIFO) 1) add() 2) remove() 3) peek() 4) isEmpty() import java.util.NoSuchElementException; class Queue{ class Node{ private T data; private Node next; public Node(T data){ this.data = data; } } private Node first; private Node last; public void add(T item){ Node t = new Node(item); if(last != null){ last.next = t; } last = t; //큐가 비.. 2020. 9. 9.
[Java/백준/스택] 1874 - 스택 수열 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 코드 처음 문제를 이해하는 것부터 난관이었다. 알고보니 1~N 순서대로 스택에 push하는 것이었다. 숫자를 순서대로 Stack에 push하면서 입력받은 수열 seq[idx]와 같을 때 pop을 시켜주었다. 아닌 경우는 push하도록 했다. import java.io.BufferedReader; import j.. 2020. 9. 6.
[Java/백준/스택] 4949 - 균형잡힌 세상 문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마�� www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Stack; public class Main{ public static void main(String[] args) thro.. 2020. 9. 6.
[Java/백준/스택] 9012 - 괄호 문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 코드 열린괄호( "(" )가 들어올 때 Stack에 쌓고 - push 닫힌괄호( ")" )가 들어올 때 비어있지 않으면 pop 비어있으면 짝이 맞지 않으므로 flag를 false로 돌렸다. 한 줄을 다 읽으면 Stack에 남아있는 것이 없는지, flag가 true인지 검사한다. import java.io.BufferedReader; import java.io.I.. 2020. 9. 5.
[Java/백준/스택] 10773 - 제로 문제 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 코드 내장 Stack 클래스를 사용했다. 그냥 숫자면 Stack에 push 해주고 0이면 pop을 해줬다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main{ publi.. 2020. 9. 5.
프로세스 & 스레드 (Process & Thread) 프로세스 : 프로그램을 메모리 상에서 실행중인 작업 스레드 : 프로세스 안에서 실행되는 여러 흐름 단위 프로세스 Process 기본적으로 프로세스마다 최소 1개의 스레드 소유한다. (메인 스레드 포함) 프로그램이 CPU에 의해 실행 → 프로세스가 생성, 메모리에 프로세스 주소 공간이 할당된다. (프로세스는 각각 별도의 주소공간을 독립적으로 할당한다.) Code Segment : 프로그램 명령/코드 자체를 구성하는 메모리 영역이다. Data Segment : 초기화된 데이터/전역변수, 정적변수, 배열 등 Heap Segment : 동적 할당 시 사용된다. (new(), mallock() 등) Stack Segment : 임시 메모리 영역/함수, 지역 변수, 매개 변수, 리턴 값 왜 구역을 나눌까? 최대한 .. 2020. 9. 5.
운영체제(Operating System)란? - 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 컴퓨터 하드웨어를 관리한다. - 운영체제는 시스템의 자원과 동작을 관리하는 시스템 소프트웨어의 일종이다. - 좁은 의미 : 컴퓨터 전원을 켠 뒤 부팅이 일어난 이후로 항상 메모리에 상주하는 부분 = 커널 = 운영체제 - 넓은 의미 : 커널을 포함해 주변 시스템을 다루는 유틸리티 운영체제의 종류 Windows 98, Windows10, UNIX, LINUX, MS-DOS 등이 있다. 단일 작업 처리 시스템에는 DOS, 다중 작업 처리 시스템에는 WINDOWS, UNIX, LINUX 등이 사용된다. 주로 WINDOWS는 개인용, UNIX, LINUX는 서버용 운영체제로 사용된다. 운영체제의 목적 처리능력(Throughput) 향상 일정 시간 내에 .. 2020. 9. 3.