본문 바로가기

전체 글144

[pg] 프로그래머스 프로세스 0. 개요 오늘도 난 힘겹게 코딩테스트 문제를 푼다.. 알고리즘은 넘나 어려운 것!! 리팩토링할 기력도 없다.. 그럼 문제를 시작하자.. 1. 문제 정의 문제는 다음과 같다. 1. 큐에 프로세스들이 들어 있는데 각 프로세스는 우선순위를 가지고 있다. 2. 우선순위가 높으면 높을수록 먼저 실행되야 한다. 3. 그렇기 때문에 큐에서 poll 하더라도 큐에 우선순위가 더 높은 프로세스가 존재하면 큐에 다시 프로세스를 집어 넣는다. 주어지는 것: 우선순위 배열, 알고자하는 프로세스의 인덱스 location output: location으로 주어지는 프로세스가 몇 번째에 실행되는지 2. 나의 시도 일단 문제에서도 큐를 언급하였고, 순서대로 실행해야하는 부분이 있어 큐로 진행했다. 1. 일단 우선순위로 배열의 우선.. 2023. 7. 19.
[pg] 프로그래머스 올바른 괄호 0. 개요 다시 돌아온 코테~ 이번 문제는 쉬워서 재밌었다. 이런 문제만 코테에 나와줬으면 좋겠지만 그것은 허황된 바람일뿐.. 1. 문제정의 1. 문자열로 "(())" 와같은 예시가 주어지고 이것이 올바른 괄호인지 확인하는 문제. 2. 문자열 s의 길이는 10만 이하이며 문자열은 '('와 ')'로만 이루어져 있다. 주어진 것: 괄호 문자열 정답 output : 이 괄호가 올바른 괄호인지 true / false 리턴 2. 나의 사고 및 시도 괄호문제를 보고 큐보다는 스택이라는 느낌이 딱 와닿아서 스택으로 풀기로 했다. 1. char를 저장할 스택을 하나 선언한다. ( 여기에는 '('가 문자열에서 발생했을 경우 ')'를 넣을 것이다.) 2. 문자열을 char 배열로 만든다. 3. 순회하면서 '(' 일 경우에.. 2023. 7. 19.
[pg] 프로그래머스 기능개발 0. 개요 다시~ 돌아온 코딩테스트~ 왠지 너무나 어려워~ .... 이렇게 노랫말 한 소절로 나의 마음을 이야기 하면서 시작해 볼까 한다. 부트캠프를 시작하고 그룹스터디의 메인 주제가 코딩테스트 준비로 잡힘으로 해서 (반) 강제적으로 코테준비를 시작했다. 그리고 각각의 문제를 풀면서 느꼈던 점을 남기고자 이 글을 작성한다. 1. 문제정의 1. 프로그램 기능개발을 해야한다. 2. 각 기능의 진도를 나타내는 배열이 주어진다. ex) [51,10,90] 3. 각 기능 별로 진행할 수 있는 속도 배열이 주어진다 ex)[30, 20, 1] 4. 프로그램은 각 순서대로 배포된다. (뒷 기능이 먼저 배포될 수 없다.) 5. 첫 기능의 진도가 100, 두 번째 기능의 진도가 100이라면 같이 배포된다. 주어지는 것: .. 2023. 7. 19.
[JAVA][자료구조] Java에서 Stack을 사용하는 방법 대해 알아보자! 0. 개요 코딩테스트를 준비하면서 Stack이라는 자료구조를 사용하게 되었는데, Java에서는 어떠한 형식으로 Stack을 사용할 수 있게 제공해주는지, 어떤 메서드를 제공해주는지 정리하고자 이 글을 작성한다. 1. Java에서 제공해주는 Stack Queue와는 다르게 Java에서 Stack은 클래스로 구현이 되어 사용할 수 있게 제공해준다. 잠깐 예전에 정리했던 Queue에 대해서 복기를 해보자면, Queue 같은 경우 new LinkedList()를 통해 생성하여 인터페이스에 해당하는 메소드를 사용했지만, Stack같은 경우 new Stack()으로 객체를 생성하여 스택을 사용할 수 있다!! Stack은 Vector를 상속받아서 구현되어 있는 것을 아래 사진을 통해 확인할 수 있다. 그리고 초록색으.. 2023. 7. 17.
[JAVA][자료구조] JAVA Queue 사용법. 0. 개요 코딩테스트를 준비하면서 필요한 java 자료구조와 메서드에 대해서 정리하고자 이 글을 남긴다. 나 같은 경우에는 평소에 queue를 사용해본적이 거의 없기 때문에 어렴풋이 queue가 java에서는 인터페이스로 구현되어 있는다는 사실을 알고만 있을 뿐 이었다. 이번에 코딩테스트를 준비하면서 queue를 사용할만한 문제가 나와서 이번기회에 java에서 queue에 대한 메서드를 정리하고 이해하려고 이 글을 작성한다. 1. JAVA에서 구현된 queue 메서드 이 글을 읽는 분들은 큐라는 자료구조에 대해서 이해가 있을 것이라고 생각한다. 선입선출의 대표적인 자료구조로써 많은 곳에 사용된다. 자! 그럼 자바에서 queue는 어떻게 구현해놓았는지 살펴보자! 먼저 서두에서도 이야기 했듯이 자바에서는 큐.. 2023. 7. 16.
[Git] git 구조에 대해서 알아보자! 0. 개요 git은 어떻게 버전관리를 하는지 git을 학습하면서 궁금해졌고, Git에 관련된 강의를 들으면서 Git이 어떻게 버전관리를 하는가에 대해서 마침 개념설명을 들었기에 머릿속에 좀 더 오래 남겨두기 위해 이 글을 작성한다. 1. Working Derectory - Index - Repository 구조. 일단 깃의 원리를 알기 전에 필수로 알아야 하는 것이 있다. 바로 Working Directory(work tree), Index(Staging Area), Repository이다. 아래 그림을 보자. 최초에 "git init"을 입력하게 되면 .git 파일이 생기면서 해당 디렉토리는 Working Directory가 되고 Index와 Repository라는 가상 저장공간이 생긴다. (가상공간은.. 2023. 7. 15.
[Git] revert conflict 문제 0. 개요 git 명령어를 가지고 놀다가 revert에서 굉장히 신기한 현상을 발견하였다. 그래서 이 내용을 기록해두고자 이 글을 적는다. 1. 문제와 시도 1번 문제. 일단 각각의 버전은 아래와 같다. 1 버전: a.txt를 만들어 hi라는 텍스트를 쓰고 저장. 2 버전: a.txt를 열어 hello라는 텍스트를 추가하고 저장. 3 버전: a.txt를 열어 say ho라는 텍스트를 추가하고 저장. 한 상황이다. 이제 revert를 이용해 1버전을 revert하려고 한다. 과연 성공할 수 있을까? 정답은 X이다. 충돌이 발생한다. 2번 문제. 일단 각각의 버전은 아래와 같다. 1 버전: a.txt를 생성하고 저장. 2 버전: b.txt를 생성하고 저장. 3 버전: c.txt를 생성하고 저장. 한 상황이다.. 2023. 7. 12.
[Git] Git 정리 0. 개요 수업의 커리큘럼의 시작은 Git이었다. 개발자 중에 Git을 모르는 개발자는 없을 것이라고 생각한다. 그런데 내가 지금까지 Git이 왜 필요한지에 대해서 생각해본적이 있었던가? 왜 필요한지에 대해서 생각하지 않고, 무작정 다른사람도 사용하니까 따라서 사용했던 것 같다. 과거에 나를 반성하면서 Git이 세상에 나오게 된 이유는 뭘까? 이 질문으로 이 글을 시작할까 한다. (뭔가 불편하니까 나왔겟죠?) 1. Git이 나온 이유 아마 Git 이전의 개발세계의 난이도는 매우 매우 난이도가 높았을 것이라고 생각한다. 물론 버전에 대한 이력관리는 하고 있었겠지만, 협업하여 개발 완료 후에 소스코드를 합치는 비용, 그리고 버전 관리를 하는 비용은 지금보다는 높았을 것이라고 생각한다. Git 없이 협업을 했.. 2023. 7. 12.
[Git] Linux 명령어 정리. 0. 개요 오늘은 산뜻한 2일차. 오늘 부터 본격적으로 실시간 강의와 더불어 학습을 시작했다. 우리들의 커리큘럼 첫 시작은 Git 부터 시작했다. Git을 배우는데 왠 Linux 명령어를 정리하냐고 의아해하시는분들도 계실 것이다. 그! 러! 나! 절대로 Git과 Linux 명령어는 무관하지 않다. Git을 CLI 환경에서 능수능란하게 사용하기 위해서는 자주 쓰는 Linux 명령어는 손에 숙달되어야 한다. 그렇지 않으면 필요할 때마다 ChatGPT에게 질문하거나, 구글링을 해야하므로 시간이 많이 든다. 자 잡설은 집어치우고 오늘 배운 Linux 명령어에 대해서 간략히 정리 해 보고자 한다. 1. 기본적인 Linux 명령어 1) ls - list segments의 약자 ls. 아주 습관 처럼 사용되는 명령어.. 2023. 7. 11.