전체 글

Algorithm/concepts

정렬 알고리즘(Sorting Algorithm)

정렬 알고리즘(Sorting Algorithm) 항상 정렬 헷갈리네요. 오름차순으로 정렬했을 때를 가정하고 정리해볼게요. Bubble Sort 인접한 두 개의 데이터를 비교해가면서 가장 큰 값을 배열 맨 끝에 두면서 정렬합니다. 한 턴마다 비교대상 중 가장 큰 값이 그 중 제일 뒤에 가도록 보장합니다. 시간 복잡도 : O(n^2) Selection Sort 앞에서부터 시작하여 해당 수보다 작은 수를 찾고, 만약 찾았으면 그 수랑 swap하고 없으면 (그 수가 가장 작은 수이기 때문에) 그대로 둡니다. 다음은 그 다음 인덱스부터 비교합니다. 한 턴마다 비교대상 중 가장 작은 값이 제일 앞에 가도록 보장합니다. 시간 복잡도 : O(n^2) Insertion Sort index 1부터 시작하여 해당 인덱스 아..

Algorithm/problem solving

Today's Algorithm(2019-02-25)

Today's Algorithm(2019-02-25) 오픈 채팅방 닉네임 변경만 제대로 체크해주면 큰 어려움은 없는 문제였습니다. 닉네임 변경은 Map 에서 가지고 있다가 들어올때, 변경할때만 해당 아이디에 대한 이름을 바꿔주면 됩니다. 사실 가장 뒤에 있는 것(가장 최신의 것)만 기억하면 되기 때문에 매번 들어올 때마다 Map에 넣기만 하면됩니다. 만약 있는 값이라면 새로운 값을 덮어쓰게 되고, 없으면 새로 넣어질 것이니까요. package p42888; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public String[] solution..

CS

프로세스와 쓰레드

프로세스와 쓰레드의 차이는? 프로세스(Process) 프로세스는 실행 중인 프로그램을 말하며, 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말합니다. 이러한 프로세스에 대한 정보는 프로세스 제어블록(PCB, Process Control Block)이라는 자료구조를 통해 관리가 되며 이를 통해 CPU가 각각의 프로세스를 교체해가면서 일할 때 어디에서 시작해야할지 알 수 있는 것입니다. PCB에 저장되는 정보는 다음과 같습니다. 프로세스 식별자(Process ID, PID) : 프로세스 식별번호 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장 프로그램 카운터 : 프로세스가 다음에 실행할 명령어의 주소 CPU 레지스터 CPU 스..

TIL

Intellij에서 디버깅 사용하기

Intellij 디버깅 사용하기 본 글을 천청향로님의 글을 참고하여 작성되었으며 저에게 필요한 부분만 기록해보려 합니다. Break Point 라인 넘버 오른쪽에 클릭하면 빨간색 버튼이 하나 생기는데요. 그것이 Break Point입니다. 이건 아마 많은 분들이 알고 계실텐데요. 이 빨간색 버튼 위에 오른쪽 마우스를 누르면 특정 조건에서 break를 설정할 수 있습니다. 예를들어 변수 == 3 라면 그 변수가 3일 때 멈추게 되는 것이죠. 디버깅 버튼 resume : 다음 break point로 이동합니다 step over : 현재 break 라인 모두 실행 후 바로 다음 라인으로 이동합니다. step into : 현재 break 라인에서 따로 실행하고 있는 메서드가 있다면 그곳으로 이동하게 됩니다. 그..

Algorithm/problem solving

Today's Algorithm(2019-02-22)

Today's Algorithm(2019-02-22) 최근 여러 일로 바빠서 알고리즘 정리를 제대로 못했네요. 그 동안 총 5문제를 풀었는데요. 어려웠던 2문제의 포인트만 정리해볼게요. 방금그곡 이 문제는 요구사항을 제대로 이해하는 것이 중요합니다. 각 음은 1분에 1개씩 재생된다는 점, 한 음악을 중간에 끊을 경우 원본에 기억한 멜로디가 들어있더라도 그 곡이 아닐 수 있다는 점이 중요합니다. 즉, 해당 재생시간 동안 멜로디를 구성하고 그 안에 기억한 멜로디가 들어있는지 확인하는 것이 핵심이죠. 재생시간의 중요성을 파악하지 못하고, String에서 사용할 수 있는 좋은 메서드를 활용하지 못하여 테스트 케이스 1개를 남겨두고 다른 사람의 코드를 참고했는데요. 결국 제가 문제를 제대로 이해하지 못했다는 것을..

Book/programming

웹을 지탱하는 기술2 - URI

웹을 지탱하는 기술2 2부. URI chapter04. URI의 스펙 URI는 Uniform Resource Identifier의 약자로 리소스를 통일적으로 식별하는 ID를 의미합니다. 이 URI를 통해서 해당 리소스를 간단하게 접근 가능합니다. 하지만 URI를 잘못 설계하면 이후 시간이 지나서 해당 리소스를 접근하지 못하는 경우가 발생할 수 있기 때문에 처음부터 잘 설계하는 것이 중요합니다. http://blog.example.com/entries/1 위와 같은 URI이 있을 때 URI 구성하는 파트는 다음과 같습니다. URI Scheme : http 호스트명 : blog.example.com 패스 : /entries/1 URI는 URI 스키마로 시작이 되는데 위를 보면 http로 접근할 수 있다는 것..

Brad Lee
Brad's blog