문제 https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 풀이 빡구현 문제이다. 흔히 시뮬레이션이라고 하는데 몇 가지 예외에 대해 생각을 못 해서 힘들었다. 일단 움직일 수 있는 보드를 만들었다. 4차원 배열로 만들었는데 앞에 2칸은 현재 위치를 저장해줬고, 뒤에 두칸은 어느 위치에서 왔는지 저장해주었다. 이렇게 설계한 이유는 예를들어 현재 위치만 저장하는 2차원 배열을 통해 'U' -> 'D'로 움직여 0,0이라는 위치에 도달하여 0,0을 방문처리해버리면 나중에 다른 방향에서 0,0에 방문했을 때 따라온 길은 다른데 0,0이 이미 방문했다는 이유로 새로운 길이 아니라는 판단을 해버릴 수 있어..
문제 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 백트래킹을 통해서 문제를 해결할 수 있었다. nCr 조합이라 가정할때 n은 numbers 배열의 인덱스 기반으로 2개를 뽑으면 돼서 numbers의 크기가 될 것이고 r은 2개를 뽑아서 더하는 것이니까 2가 될 것이다. n과 r이 무엇인지 알았으니 조합을 돌려주면 되고, 조합의 합산 결과들의 중복을 방지..
문제 https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr C++로만 풀다가 자바로 푼 이유는 코딩테스트가 어떻게 진행되는지 궁금해서 우아한 테크캠프 5기에 지원했는데 응시 언어가 자바랑 코틀린 밖에 없어서 며칠 동안 적응할 겸 자바로만 알고리즘 문제를 풀 생각이다. 풀이 문제 자체는 쉽게 접근할 수 있지만 범위가 좀 있다보니 효율적으로 약수의 개수를 구해주지 않..
개요 이번 글에서는 Java의 Java Collection Framework 중 List, Set, Map에 대해 이야기 해보려고 한다. Java Collection Framework(JCF) 자바에서 기본적인 자료구조들을 한 곳에 모아 관리하고 편하게 사용하기 위해서 제공하는 것을 의미한다. Java Collection Framework의 상속 구조는 크게 Collection(List, Set)과 Map으로 되어있다. 왜 사용할까? 개발을 하면서 많은 데이터를 처리하기 위해 배열과 같은 자료구조로만 개발을 하는 것은 힘들뿐더러 배열의 한계, 즉 크기가 고정되어 있다는 문제점이 큰 원인으로 자리 잡아 자료의 삽입, 삭제 등이 용이해지고 어떠한 자료형이라도 담을 수 있으며 크기가 자유롭게 늘어난다는 강점 ..