전체 글 25

Git 원격 저장소 끊기

멋사 강의를 학습하면서 알게 되는 것을 정리하기 위해 TIL 저장소를 만들기로 했다. 기존에 사용하던 TIL 폴더를 사용하지 않고 새로운 폴더를 만들어서 관리하기 위해 기존 폴더에 연결된 원격 저장소를 끊기로 했다. 원격 저장소 끊기 먼저 터미널에서 원래 remote 저장소가 연결되어 있던 폴더로 이동한다. (연결을 끊고자 하는 폴더) cd 깃허브/TIL 아래의 코드를 실행하면 git remote -v 현재 연결된 remote 저장소를 확인할 수 있다. repository의 정보가 확인되었다면 아래 명령어를 실행하여 연결을 끊는다. (여기서 origin은 remote 저장소의 이름) git remote remove origin

Dev/git 2022.08.30

백준1406_에디터 (java)

https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제 풀이 방식 나의 생각 LinkedList를 이용 이유는 커서가 앞과 뒤 뿐만 아니라 중간에 문자와 문자사이에도 들어가 값을 추가하거나 삭제할 수 있어야하기 때문이다. 그래서 LinkedList에 입력받은 문자열을 저장 제일 마지막 인덱스를 커서의 인덱스로 설정해준 후, swicth-case문을 이용해 각 명령어에 따라서 커서의 인덱스를 옮겨주거나 값을 삭제 또는 추가하여야겠다고 생각했다. 즉,..

알고리즘 2021.11.16

백준2583_영역구하기 (java)

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 문제 풀이 방식 단지번호 붙이기 문제와 구하는 것은 같다. 다만, 우리가 평소에 배열로 만드는 map과 좌표가 달라서 이 부분이 좀 까다로웠다. 분명 첫 입력이 0,2 이고 4, 4인데 예시의 그림의 봐도 맞지않는것 같고, 이해가 안되서 입력을 받는 부분은 다른 블로그를 좀 참조했다. 직사각형의 범위는 모두 1로 바꾸어준다. 직사각형으로 채워진 map이 만들어지면, 방문 한적이..

알고리즘 2021.11.15

백준1182_부분수열의 합 (java)

https://www.notion.so/softsquared/1182_-c74634d548d74a2f82baa83b7482c8e3#c557191a49b04f17b6c9ee65151962ef 백준1182_부분수열의 합 전제조건 www.notion.so 전제조건 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수 1 ≤ N ≤ 20, |S| ≤ 1,000,000 부분수열이란? 하나의 수열의 집합이 있다면 그 중에서 부분부분의 수열을 말한다. 예제의 {-7 -3 -2 5 8} 의 부분수열은 {}, {-7}, {-7 -3}, {-7 -3 -2}, ....., {-7 -2}, {-7 -2 5}, {-7 -2 8},....,{-3 5 8}, ..., {5 8} 이런 순서가 지켜진 모..

알고리즘 2021.11.14

백준10026_적록색약 (java)

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 예제 입력 1 5 RRRBB GGBBB BBBRR BBRRR RRRRR 예제 출력 1 4 3 문제 풀이 방식 길찾기 문제처럼 첫 (0,0)부터 방문체크를 하면서 같은 상하좌우에서 같은 색깔이 하나라도 있으면 같은 구역으로 본다. 요소 수 찾기 문제랑 비슷했다. 적록색약이 아닌 사람이 보는 구역의 수는 DFS함수를 돌며 색깔이 같을동안 탐색해준다. 색상이 다르면 함수를 종료하고 count+1..

알고리즘 2021.11.11

백준2075_N번째 큰 수 (java)

https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 문제 풀이 방식 나의 생각 ArrayList에 입력받은 숫자를 모두 넣는다. reverseSort한다. n번째 큰수를 찾는 것이므로 내림차순 정렬된 list에서 n-1번째 숫자를 찾는다. 해당 방법은 시간이 좀 더 오래걸린다. 찾아본 풀이 우선순위큐를 최대힙으로 변경해서 큐에 입력된 숫자를 넣는다. 반복문을 통해 n-1번째까지 큐에서 poll해준다. 반복문이 끝나고 마지막에 한번 poll해주면 n번째 큰..

알고리즘 2021.11.09

백준1158_요세푸스 문제 (java)

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 풀이 방식 처음생각 처음에는 3번째 마다 제거한다고 해서 n까지의 for문에서 index를 증가시키면서 출력하려고 했으나, 단순히 인덱스만 증가시키면 n다음에 1로갈 수 있는 방법이 떠오르지 않음. 다음생각 문제에서 사람들이 원을 이루어 앉아있다고 하였기에 단순히 원형큐 자료구조를 사용하려고 했음. 그러나, 앞에서는 데이터를 뽑거나 삭제하는 일만 일어나고 뒤에서는 앞에서 뽑은 데이터를 넣기만 하면되기 때문에 일반적인 큐 자료구조를 써도 되겠다고 생각하였다. 수도코드 해당문제는 수도코..

알고리즘 2021.11.08

백준1764_듣보잡 (java)

생각한 문제풀이 방식 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M N과 M은 각각 최대 500,000이므로 N+M은 100만이다. 제한시간은 2초이므로 시간복잡도는 O(N^2)미만이 되야한다. 먼저, HashMap을 사용해서 듣도못한 사람의 이름을 key로 횟수를 value로 저장. 처음 이름이 나오는 것이기때문에 value를 1로 지정 그리고 보도못한 사람의 명단을 돌면서 map에 이미 이름이 있으면 +1 모든 입력을 받고 난 후 map에서 value가 2에 해당하는 key의 갯수와 이름을 출력해준다. 해당 자료구조를 사용한 이유 자료구조는 HashMap을 사용했다. 듣도못한 사람과 보도못한 사람의 명단이 순서대로 입력되는데 그 중에서 듣도보도 못한사람이란 뜻은 두 그룹에 모두 속해있다는 뜻이다..

알고리즘 2021.11.08

백준1620_나는야 포켓몬 마스터 이다솜 (java)

문제링크 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 처음에 문제보고 길어서 속으로 뭐지...했는데 정작 문제자체는 어렵지 않았다. 오히려 스토리가 있어 재미있었던 문제! 안녕? 내 이름은 이다솜. 나의 꿈은 포켓몬 마스터야. 일단 포켓몬 마스터가 되기 위해선 포켓몬을 한 마리 잡아야겠지? 근처 숲으로 가야겠어. (뚜벅 뚜벅) 얏! 꼬렛이다. 꼬렛? 귀여운데, 나의 첫 포켓몬으로 딱 어울린데? 내가 잡고 말겠어. 가라! 몬스터볼~ (펑!) 헐랭... 왜 안 잡히지?ㅜㅜ 몬스터 ..

알고리즘 2021.09.30

프로그래머스_제일 작은 수 제거하기 (java)

원본 문제 : https://programmers.co.kr/learn/courses/30/lessons/12935 정수가 저장된 배열 arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수 만들기 빈 배열이면 -1을 반환 제한조건 : arr은 길이 1이상인 배열, 인덱스 i,j에 대해 i 가j와 같지 않다면 arr[i]도 arr[j]와 같지 않다. class Solution { public int[] solution(int[] arr) { int[] answer = {}; List arr2 = new ArrayList(); // 배열에서 바로 삭제가 안됨으로 arraylist생성 // 원소가 1개이하면 무조건 가장 작은 수 이므로 제거된다 -> -1을 리턴 if(arr.length

알고리즘 2020.09.07