전체 글

전체 글

    [Git] 특정 브랜치 Clone하기

    특정 브랜치 clone clone 하려는 저장소의 브랜치가 많을 경우 특정한 브랜치만 clone 하는 방법이 있다. git clone -b {branch_name} --single-branch {repository_url} 예시 git clone -b yhh1056 --single-branch https://github.com/yhh1056/java-racingcar.git 특정 브랜치 추가 single branch로 clone한 뒤 다른 브랜치를 가져오고 싶어 졌다. 원격에 있는 브랜치를 가져오는 방법은 다음과 같다. git remote set-branches --add origin {remote_branch_name} git fetch origin {remote_branch_name}:{local_b..

    [리팩토링] Composing Methods

    들어가며 리팩터링을 하는 방법은 다양하지만 대부분 메서드를 구성하는 것에 사용됩니다. 오늘은 메서드를 분리해보면서 간단하면서도 강력한 Composing Methods에 대해 알아보고자 합니다. 코드는 자바로 되어있지만 다른 언어를 사용하시는 분들도 읽는데 무리 없이 최대한 쉽게 코드를 작성해보겠습니다. Composing Methods 지나치게 긴 메소드는 악의 근원입니다. 논리를 쉽게 파악할 수 없게 만들고 변경하기도 어렵게 만듭니다. Composing methods는 코드 중복을 제거하고 메서드를 간소화하며 향후 개선할 수 있는 기반을 만들어줍니다. Extract Method 메서드의 라인이 길수록 의도를 파악하기 어려워집니다. 리팩터링의 주된 이유이고 Extract Method(메서드 추출)는 리팩터..

    [백준] 10282: 해킹 / JAVA

    https://www.acmicpc.net/problem/10282 10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 www.acmicpc.net 설명 기본적인 다익스트라 문제입니다. 시간이 더 짧게 소모되는 경로로 우선순위큐에서 빼지만 한 번 체크한 지점보다 더 짧은 경로가 나올 수 있으므로 방문배열을 사용하지 않았습니다. ex) 3번 컴퓨터가 감염되는 시간은 8초가아니라 6초입니다. 1 -> 3 = 8초 1 -> 2 -> 3 = 6초 2 1 2 3 1 8 3 2 4 풀이

    [백준] 6087번: 레이저 통신 / JAVA

    https://www.acmicpc.net/problem/6087 설명 방향 변경을 최소로 목표 지점에 도착해야 하는 문제입니다. 방향을 바꿔 움직일때마다 거울을 설치하고 매번 거울을 최소로 설치해서 움직일 수 있는 경로를 가져옵니다. (우선순위 큐) 방향을 enum 클래스로 만들어 보았습니다. 방향을 바꿨다면 비용이 1 증가하게 됩니다. 풀이

    [백준] 5972: 택배 배송 / JAVA

    https://www.acmicpc.net/problem/5972 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net 설명 기본 다익스트라 문제입니다. 목표 지점까지의 최소 비용을 구하면 됩니다. 우선순위 큐와 방문 배열을 활용하여 풀이하였습니다. 풀이

    [회고] 체대생이 개발자가 된 이유

    [회고] 체대생이 개발자가 된 이유

    나는 왜 개발자가 되려 하는가 저는 예체능 계열의 비전공자입니다. 컴공과는 정말 아무련 관련이 없었고 컴퓨터라고 하면 게임, 웹서핑이 전부였습니다. 개발자라는 직종도 모르고 있었고 관심도 없었습니다. 근데 지금은 왜 좋은 개발자가 되기 위해 고민하게 됐는지 계기를 적어보려 합니다. 돈과 호기심 때는 제가 카페에서 근무하고 있던 시절로 올라갑니다. 동네에서 일하다 보니 친구들도 방문했습니다. 특히 자주 오는 친구는 개발자 친구였습니다. 1년간 꾸준히 노트북을 들고 와서 어두운 배경에서 초록색 글씨가 가득한 화면을 보면서 어떤 작업을 하더라고요. 장난식으로 "우리 카페 해킹 중이냐", "지금 뭐 하고 있는 거냐" 자주 물어봤습니다. 항상 돌아오는 답변은 제가 이해하지 못하는 용어들로 가득했어요. 서버를 만들..

    [백준] 1753: 최단경로 / JAVA

    https://www.acmicpc.net/problem/1753 설명 기본적인 다익스트라 문제다. 코드를 보고 이해하기 어렵다면 다익스트라 개념을 먼저 익혀야한다. [백준] 1753: 최단경로 / JAVA 풀이

    [백준] 14496번: 그대, 그머가 되어 / JAVA

    https://www.acmicpc.net/problem/14496 14496번: 그대, 그머가 되어 첫째 줄에 머호가 바꾸려 하는 문자 a와 b가 주어진다. 둘째 줄에 전체 문자의 수 N과 치환 가능한 문자쌍의 수 M이 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ M ≤ 10,000) 이후 M개의 줄에 걸쳐 치환 가능한 문 www.acmicpc.net 설명 입력 받은 좌표를 양뱡향 이동이 가능한 2차원 배열로 만든다. 우선순위 큐를 이용하여 최단 거리를 구한다. 풀이

    [백준] 4485: 녹색 옷 입은 애가 젤다지? / JAVA

    https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 설명 출발 지점으로부터 도착지점까지 최소 비용을 구하는 문제입니다. 한 칸씩 이동하는 BFS 개념과 비용이 적은 곳부터 이동하게 우선순위를 사용하여 풀이가 가능합니다. 풀이

    [백준] 1504: 특정한 최단 경로 / JAVA

    https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 설명 다익스트라 유형에서 조금 변형이 일어난 문제입니다. 반드시 거쳐야 할 지점이 존재합니다. 반드시 방문해야 되니 특정 지점으로만 이동해보면서 도착지까지 거리를 구하면 됩니다. 2가지의 경로가 존재합니다. 1 -> v1 -> v2 -> N 1 -> v2 -> v1 -> N 두 가지의 경로중 더 적은 비용으로 도착하는 방법이 최단 거리가 됩니다. 이번엔..