programmers

    [java] 프로그래머스 (캐시) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/17680 코딩테스트 연습 - [1차] 캐시 3 [Jeju, Pangyo, Seoul, NewYork, LA, Jeju, Pangyo, Seoul, NewYork, LA] 50 3 [Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul] 21 2 [Jeju, Pangyo, Seoul, NewYork, LA, SanFrancisco, Seoul, Rome, Paris, Jeju, NewYork, Rome] 60 5 [Jeju, Pangyo, S programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT..

    [java] 프로그래머스 (프렌즈4블록) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT 문제였다. 이 문제에서 해야할 과정은 크게 3가지이다. 더이상 square가 생기지 않을 때까지 밑의 세 과정을 반복한다. 주어진 board에서 square를 찾는다. square의 개수를 세고, 해당 위치의 블록을 삭제한다. 남은 블록들을 아래로 내려, b..

    [java] 프로그래머스 (뉴스 클러스터링) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT 문제였다. 주어진 문자열 str1, str2 을 각각 두글자씩 잘라 list1, list2를 구성한다. list1의 각 요소들을 list2에도 존재하는지를 검사한다. 존재한다면 그 요소는 str1, str2의 교집합이 될 것이다. (그런 후, list2에서..

    [java] 프로그래머스 (예상 대진표) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr Approach 2017 팁스타운 문제이다. (a + 1) / 2 와 (b + 1) / 2가 같을 때까지 앞의 과정을 반복하면서 count 를 늘려간다. 전체 사람 수 n명은 문제 풀이에 필요가 없다. 예를 들어 2번 3번으로 시작한 경우 (2 + 1) / 2 = 1, (3 + 1) / 2 = 2 -> count++ (..

    [java] 프로그래머스 (영어 끝말잇기) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 [tank, kick, know, wheel, land, dream, mother, robot, tank] [3,3] 5 [hello, observe, effect, take, either, recognize, encourage, ensure, establish, hang, gather, refer, reference, estimate, executive] [0,0] programmers.co.kr Approach Summer/Winter Coding(~2018) 문제이다. 중복된 단어인지를 확인하기 위해 HashSet을 사용했고, 현재 단어의 첫문..

    [java] 프로그래머스 (점프와 순간 이동) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr Approach Summer/Winter Coding(~2018) 문제이다. 처음에는 당연히 BFS/DFS 류의 탐색문제인줄 알고 그렇게 접근했다. 그런데 코드를 제출하니 정확성은 통과했지만, 효율성에서 모두 시간초과가 떠서 다른풀이가 생각나지 않아 고민 끝에 결국 다른 분들의 솔루션을 찾아보았다. 찾아보니 주어진 수를 ..

    [java] 프로그래머스 (소수 만들기) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr Approach 처음에 조합으로 n개 숫자에서 3개를 고른 후 더한 숫자가 소수인지를 판별하는 식으로 접근했다. 그런데 시간초과가 났다. 그래서 재귀를 돌리지 않고 그냥 단순히 앞에서부터 3개를 골라 더한 숫자가 소수인지를 판별하는 식으로 구현했더니 시간초과없이 테스트가 통과되었다. 소수판별은 에라토스테네스의 체를 이용하여 ..

    [java] 프로그래머스 (수식 최대화) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr Approach 2020 카카오 인턴십 문제이다. "+, -, *" 3개의 연산자를 가지고 우선순위를 매길 때, 만들 수 있는 가짓수는 3! = 6가지이다. 6가지의 우선순위로 각각 계산한 값의 절댓값이 가장 큰 것을 찾는 문제이다. 먼저 문자열에서 숫자와 연산자를 분리한 후, 6가지 우선순위를 각각 적용시킨다. 접근법을 찾기는 쉬웠으나 구현..

    [java] 프로그래머스 (짝지어 제거하기) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr Approach 2017 팀스타운 문제이다. 주어진 문자열을 처음부터 Stack에 넣고 빼기를 반복한다. 넣기 전에 stack의 top과 비교하여 만약 같다면 pop을 하고, 다르다면 push를 한다. 문자열의 끝까지 다 완료한 후, 스택이 비어있으면 문자열을 모두 제거할 수 있는 것이고, 스택이 비어있지 않다면 문자열을 모두 제거..

    [java] 프로그래머스 (N개의 최소공배수) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr Approach A * B = (A와 B의 최대공약수) * (A와 B의 최소공배수) 를 이용하여 문제를 해결할 수 있다. 주어진 배열의 앞 두 요소로 최소공배수를 구한 후, 그 최소공배수와 배열의 다음 요소와의 최소공배수를 계속해서 구해나간다. 그렇게 마지막으로 구해진 숫자가 그 배열의 최소공배수이다...