본문 바로가기

분류 전체보기137

[C & Java] 트리 Tree 1 - 트리? / 이진트리? / 트리 표현법 1. 트리(Tree)의 개념 계층적인 자료를 표현하는데 적합한 자료구조 한 개 이상의 노드로 이루어진 유합 집합 A~J를 노드(node) 이들 중 하나의 하나의 노드를 루트(root) 노드라 하고 나머지 노드들을 서브 트리(sub tree)라 한다. 계층적 구조에서 가장 높은 곳에 있는 노드 A가 루트가 됨 루트와 서브트리는 간선(edge)으로 연결됨 ex) {A, B, C, D, E, F, G, H, I, J} 중에서 루트 노드는 A이고 나머지 {B, E, F, G}, {C, H}, {D, I, J}의 3개의 노드 집합들은 A의 서브 트리라 한다. 다시 서브 트리 {B, E, F, G}의 루트는 B가 되고, 나머지 {E}, {F}, {G} 노드들은 다시 3개의 서브 트리로 나뉜다. 나머지도 마찬가지이다.. 2020. 11. 3.
[운영체제] 1 - 컴퓨터 시스템 소개 1. 컴퓨터 시스템 소개 운영체제를 쉽게 학습하려면 먼저 운영체제와 가장 밀접하게 관련 있는 프로세서를 중심으로 메모리, 주변장치와 같은 하드웨어를 살펴보는 것이 좋다. 그런 다음, 컴퓨터 시스템의 동작과 관련된 명령어 구성과 실행 과정, 입출력과 관련된 인터럽트의 개념을 이해해야 한다. 이런 개념들은 운영체제와 밀접한 관련이 있어서 운영체제를 학습하기 전에 기본으로 알아야 할 내용이기도 하다. 그래서 먼저 컴퓨터 시스템이 무엇인지 알아보자. (이미 숙지하고 있다면 바로 2. 운영체제부터 학습) 1) 컴퓨터 시스템 구성요소 * 컴퓨터 시스템은 데이터를 처리하는 물리적인 기계장치인 하드웨어 + 특별한 작업을 지시하려고 명령어로 작성한 프로그램인 소프트웨어로 구성된다. * 운영체제는 컴퓨터 하드웨어와 사용자.. 2020. 10. 26.
[백준 - Java] 14502번 : 연구소 (삼성 SW 역량 테스트 기출 문제) 문제 www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 설명 안전 영역 크기의 최댓값을 얻는 것이 목표. 그러기 위해선 1. 연구소에 3개의 벽을 세울 수 있는 모든 경우를 따진다. 각 경우에 따라 2. 바이러스를 퍼뜨린 뒤, 3. 가장 안전 영역이 큰 경우를 구해야 한다. main 메서드 - 연구소 map 구성하기 public static void main(String[] args) throws IOException { BufferedReader br = new Buff.. 2020. 10. 16.
[백준 - Java] 19236번 : 청소년 상어 (삼성 SW 역량 테스트 기출 문제) 문제 www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 공간과 물고기 표현 상어가 이동하며 먹을 수 있는 물고기 번호의 합의 최댓값을 구하는 문제이다. 조건에 따라 구현해보자. 4 ×4 크기의 공간이 있고, 크기가 1 ×1인 정사각형 칸으로 나누어져 있다. 공간의 각 칸은 (x, y)와 같이 표현하며, x는 행의 번호, y는 열의 번호이다. -> 이차원 배열을 map을 만들어 공간을 나타낸다. -> map에는 물고기의 번호가 저장된다. (1 .. 2020. 10. 13.
[Github] .gitignore (Eclipse - Java - MacOS) 아니 깃허브에 이클립스로 만든 자바 프로젝트 올리는데. gitignore 파일 설정해서 딱 필요한 java 파일만 올리고 싶었다. 원래 www.toptal.com/developers/gitignore 이 사이트에서 원하는거 쳐서 잘 만들었는데 아무리 해도. classpath랑. project 파일이 안 없어짐 보니까 안 적용돼있었음; 왜지? 그렇다고 막무가내로 지우고 뭐 푸시하고 패치하다 보니 잘못돼서 프로젝트 막 안 돌아가기도 하고 그랬음ㅠㅠ... 잘 알아봐야 할 듯...(나중에 천천히 알아볼래) 그래서 새로운 레파지토리 만들 때마다 걍 일단 복붙하기 위해 포스팅! 이클립스랑 자바쓰고 깃허브에 업로드하는 사람들 호옥시나 이 포스팅을 보면 구냥 아래 코드 갔다 붙이면 댐 # Created by https.. 2020. 10. 13.
[백준 - Java] 17143번 : 낚시왕(삼성 SW 역량 테스트 기출 문제) 문제 www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 삼성 SW 역량 테스트 기출문제이다. 문제에서 요구하는대로 구현하면 되는 시뮬레이션 문제이다. 구현 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판. 낚시왕이 1초에 한 칸씩 열을 이동하며 상어를 잡는다. (가장 오른쪽 열, C칸에 도착하면 이동 멈춤 -> 낚시 종료) 1초 동안 일어나는 조건을 고려해 C초까지 낚시를 하는 것이다! 낚시의 조건은 아래와 같고 이를 바탕으로 총 낚.. 2020. 10. 13.
[Java] DFS로 모든 이동 경로 구하기 DFS를 이용해 출발지(시작 정점)에서 목적지(도착 정점)까지의 모든 경로를 구해보자. DFS에 대해 자세히 알고 싶다면 아래 포스트 참고 [Java] DFS 깊이 우선 탐색 - 인접 리스트 / 인접 행렬로 구현 더보기) 인접 행렬을 이용해 그래프를 구성한 기존의 DFS 구현 코드 더보기 import java.util.*; public class DFS { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 정점의 개수 int m = sc.nextInt(); // 간선의 개수 int v = sc.nextInt(); // 탐색을 시작할 정점의 번호 boolean visited.. 2020. 9. 23.
[Java] Set to Array & ArrayList to Array HashSet -> ArrayList -> Array HashSet set = new HashSet(); //Set ArrayList list = new ArrayList(set); //Set -> ArrayList Collections.sort(list); //정렬 int[] answer = new int[list.size()]; for(int i = 0; i Array answer[i] = list.get(i); } 위의 코드를 아래처럼 한줄로 가능 return set.stream().sorted().mapToInt(Integer::intValue).toArray(); ArrayList -> Array ArrayList list = n.. 2020. 9. 22.
[프로그래머스 - Java] 삼각 달팽이(월간 코드 챌린지 시즌1) 문제 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 설명 * Jungol 1337 달팽이 삼각형 문제랑 같다. 삼각형 그리는 방식이 살짝 다르지만 코드 챌린지 할 때도 뭔가 이거 규칙이 있는 거 같은데...? 하면서도 뭐지!!!!!! 이러다가 결국 달팽이 삼각형 문제의 정답을 보고 말았다ㅠ_ㅠ 근데도 뭔가 이해가 될락말락해서 정리를 해본다! n은 1 이상 1,000 이하입니다. n이 1일 때부터 6일때 까지의 삼각 달팽이를 만들.. 2020. 9. 22.
[프로그래머스 - Java] 두 개 뽑아서 더하기(월간 코드 챌린지 시즌1) 문제 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 programmers.co.kr 코드 import java.util.*; class Solution { public int[] solution(int[] numbers) { HashSet set = new HashSet(); // 중복 없게 하기 위해 Set 사용 for(int i = 0; i < numbers.length-1; i++) { for(int j = i+1; j < numbers.length; j++) { set.add(numbers[i] + numbers[j]); } } ArrayList list = new ArrayList(set); //Set을 문제가 원.. 2020. 9. 22.
반응형