문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 풀이 따로 문제를 풀기위한 알고리즘을 요구하는 문제는 아니고 문자열 + 시뮬레이션(빡구현) 문제이다. 문제의 의도대로 스텝 하나하나 잘 따라가면 크게 어렵지는 않을 것이다. 풀면서 몇가지 주의할 점은 스텝을 밟으면서 문자열의 빈번한 삭제가 일어나는데 문자열이 비었는데 문자열을 참조하려는 경우가 종종 있어서 이 부분에 대해서 항상 문자열이 비었는지 체..
문제 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기에 지원했는데 응시 언어가 자바랑 코틀린 밖에 없어서 며칠 동안 적응할 겸 자바로만 알고리즘 문제를 풀 생각이다. 풀이 문제 자체는 쉽게 접근할 수 있지만 범위가 좀 있다보니 효율적으로 약수의 개수를 구해주지 않..