전체 글

I’m currently learning Android, ComputerScience, Algorithm and etc....
BaekJoon

[BaekJoon] 16173번 점프왕 쩰리(small) (Java) 문제 풀이 [Silver 4]

문제 https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 어떻게 풀 것인가? 문제를 읽자마자, DFS를 떠올렸다. 다만 문제가 현재 밟고 있는 칸의 수만큼 이동이 가능하다는 점만 유의해서 푼다면 쉽게 풀리는 문제였다. 풀면서 놓쳤던점 없음. 이 문제를 통해 얻어갈 것 인접행렬의 DFS 활용문제 내 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStrea..

BaekJoon

[BaekJoon] 9372번 상근이의 여행 (Java) 문제 풀이 [Silver 4]

문제 https://www.acmicpc.net/problem/9372 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 어떻게 풀 것인가? 다소 깊게 생각하면 어렵지만, 수학적으로 접근하면 너무너무 쉬운 문제였다. 가장 적은 종류의 비행기를 타고 모든 국가들을 여행

Computer Science/Software Engineering

[Software] 개발 기술 환경 파악

개발 기술 환경의 정의 개발하고자 하는 소프트웨어와 관련된 운영체제(Operation System), 데이터 베이스 관리 시스템(Database Management System), 미들웨어(Middle Ware) 등을 선정할 때 고려해야할 사항을 기술하고, 오픈소스 사용 시 주의해야할 내용을 제시한다. 운영체제(OS, Operation System) 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어이다. 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공하는 소프트웨어이다. 컴퓨터 운영체제의 종류에는 Windows,..

Computer Science/Software Engineering

[Software] 현행 시스템 파악

현행 시스템 파악 절차 새로 개발하려는 시스템의 개발 범위를 명확히 설정하기 위해 현행 시스템의 구성과 제공 기능, 시스템 간의 전달 정보, 사용되는 기술 요소, 소프트웨어, 하드웨어, 그리고 네트워크 구성등을 파악한다. 1단계 시스템 구성 파악 시스템 기능 파악 시스템 인터페이스 파악 2단계 아키텍처 구성 파악 소프트웨어 구성 파악 3단계 하드웨어 구성 파악 네트워크 구성 파악 시스템 구성 파악 현행 시스템의 구성은 조직의 주요 업무를 담당하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 기술한다. 예를 들어 조직 내에 있는 모든 정보시스템의 현황을 파악할 수 있도록 각 업무에 속하는 단위 업무 정보시스템들의 명칭, 주요기능들을 명시한다. 시스템 기능 파악 현행 시스템의 기능은 단위 업무 시스템이 ..

BaekJoon

[백준 알고리즘] 12851번 숨박꼭질 2 (Java) 문제 풀이

문제 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 어떻게 풀 것인가? BFS에서 중복 방문에 대한 체크를 삭제 해야 접근이 가능했던 문제였다. 중복 방문을 허용하게 된다면, 여러가지의 경우수 접근 자체가 불가능하다. 최단 시간을 구하라는 점은 숨박꼭질1번 문제와 똑같지만, 이번에는 최단 시간에 만나는 모든 경우를 구해야 한다. 즉, 생각해보자. 1. 방문 탐색을 하면서 시간을 계산해야한다. 2. 또한 경..

Computer Science/Software Engineering

[Software] XP (eXtream Programming) 기법

XP(eXtream Programming) XP(eXtream Programming)는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시크는 방법이다. XP는 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 한다. 릴리즈의 기간을 짧게 반복하면서 고객의 요구사항 반영에 대한 가시성을 높인다. 릴리즈 테스트마다 고객을 직접 참여시킴으로써 요구한 기능이 제대로 작동하는지 고객이 직접 확인할 수 있다. 비교적 소규모 인원의 개발 프로젝트에 효과적이다. XP의 5가지 핵심 가치 : 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중..

Computer Science/DataStructure

[DataStructure] 큐(Queue) feat. C, Java

자료구조 큐에 대해서 정리를 해보자. 큐(Queue)란 큐(Queue)는 컴퓨터 과학에서 사용되는 선형적 자료구조 중 하나이다. 큐는 데이터를 일시적으로 저장하거나 관리하는데 사용되며, 데이터를 먼저 집어넣은 것이 먼저 꺼내지는 "First-In, First-Out"(FIFO) 방식으로 동작한다. 큐는 일상생활에서 줄을 서서 기다리는 것과 유사한 개념으로 이해할 수 있다. 가장 먼저 줄을 선 사람이 가장 먼저 서비스를 받는 것과 같이, 큐에 데이터를 추가한 순서대로 데이터가 처리된다. 큐의 주요 연산 Enqueue : 큐에 데이터를 추가하는 연산이다. 새로운 데이터가 큐의 뒤쪽에 추가된다. Dequeue : 큐에서 데이터를 꺼내는 연산이다. 큐의 맨 앞의 데이터가 삭제되고 반환된다. Front 또는 Pe..

Computer Science/DataStructure

[DataStructure] 스택(Stack) feat. C, Java

자료구조 스택에 대해서 정리를 해보자. 스택(Stack)이란 스택(Stack)은 컴퓨터 과학에서 사용되는 선형 자료구조 중 하나이다. 스택은 데이터를 일식적으로 저장하거나 관리하는데 사용되며, 데이터를 쌓아 올리거나 데이터를 순서대로 꺼내는 작업을 수행할 수 있다. 이러한 작업은 "Last-In, First-Out" (LIFO) 방식으로 동작한다. 마지막으로 삽입된 데이터가 가장 먼저 상제되는 구조를 가지고 있다. 스택은 일상 생활에서 책을 쌓아 올리거나 동전을 쌓아놓는 것과 유사한 개념으로 이해할 수 있다. 책을 쌓으면 가장 위에 샇인 책이 먼저 빠지게 되고, 동전을 쌓아놓으면 가장 마지막에 쌓은 동전이 가장 먼저 나오게 된다. 스택의 주요 연산 Push : 스택에 데이터를 넣는 연산이다. 새로운 데이..

Computer Science/DataStructure

[DataStructure] 트리(Tree)

트리란 자료구조에서 트리(Tree)는 계층적인 구조를 갖는 비선형 자료구조이다. 트리는 노드(Node)들로 구성되며, 이들 간에 부모-자식 관계가 있다. 최상위 노드를 루트(Root)라고 하고, 각 노드는 0개 이상의 자식 노드를 가질수 있다. 노드(node)들과 노드들을 연결하는 간선(edge)들로 구성되어 있다. 그래프(Graph)와 가장 큰 차이로는 트리에는 사이클(cycle)이 존재할 수 없다. 노드들은 특정 순서로 나열될 수도 있고 그럴 수 없을 수도 있다. 각 노드는 부모 노드로의 연결이 있을 수도 있고 없을 수도 있다. 각 노드는 어떤 자료형으로도 표현 가능하다. 이미지 출처 https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html ..

Computer Science/Network

[Network] HTTP와 HTTPS의 차이

HTTP란 여기에 정리했다. HTTP란 https://superohinsung.tistory.com/133 [Network] HTTP 란 오늘은 HTTP에 대해서 알아보자 HTTP 란? HTTP (Hypertext Transfer Protocol)는 인터넷에서 데이터를 주고받는 프로토콜 중 하나로, 웹 서버와 클라이언트 간의 통신을 위해 사용됩니다. HTTP는 클라이언트( superohinsung.tistory.com 그렇다면 HTTPS는 무엇일까? HTTPS란 HTTPS는 Hypertext Transfer Protocol Secure의 약자로, 웹 통신을 위한 암호화된 보안 프로토콜이다. HTTPS는 HTTP의 보안성을 강화하기 위해 SSL(Secure Sockets Layer) 또는 TLS(Trans..

Computer Science/Network

[Network] OSI 7계층이란

OSI 7 Layer에 대해서 공부를 해보자. OSI 7 Layer이란 OSI 7 계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델이다. 아래 그림에서 아래부터 1계층(물리 계층) ~ 7계층(응용 계층)으로 구성되어 있다. 이미지 출처 http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5 OSI 7 계층 - 해시넷 OSI 7 계층(OSI 7 Layer) OSI 7 계층(OSI 7 Layer)는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것 이다. 이는 ISO(국제표준화기구)에서 개 wiki.hash.kr OSI 7 Layer의 구조 1계층 ..

Computer Science/OperatingSystem

[OS] 컨텍스트 스위칭이란?(Context Swiching) (CS스터디)

컨텍스트 스위칭이란 무엇인지 정리를 해보자. 컨텍스트 스위칭이 무엇인가에 대해서 알아보기전에 컨테스트가 무엇인지 알고가자. 컨텍스트(Context) 란 운영체제에서 컨텍스트란 어떤 프로그램이 실행중인 일체의 상황을 말한다. 그 일체의 상황은 메모리와 CPU레지스터들에 고스란히 담겨 있는데 메모리에는 프로그램의 코드와 전역 변수 데이터, 힙(동적 할당받아 저장한 데이터), 그리고 호출된 함수들의 매개변수와 지역변수 등이 저장된 스택이 있다. 그리고 CPU의 PC레지스터에는 현재 실행 중인 코드의 메모리 주소가, 데이터 레지스터에는 이전에 실행된 결과 값이나 현재 실행에 사용될 데이터 값들이, 상태 레지스터에는 현재 CPU의 상태 정보가, SP레지스터에는 스택의 톱 주소가 저장되어 있다. 컨텍스트 스위칭이란..

Tenacity_Dev
인성의 개발 공부 노트