https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2022 KAKAO TECH INTERNSHIP의 Level 1 문제다. 문제 자체는 어렵진 않은데 문제를 이해하는데 시간을 꽤나 썼던 것 같다. 먼저 성격 유형과 성격 유형의 점수를 나타내는 Node 클래스를 생성하고, 점수 0을 가지는 모든 성격 유형의 Node를 ArrayList에 저장한다. 그리고 choice에서 어떤 값을 선택했는지에 따라 성격 유형 Node의 점수를 더한다. 이 때 각..
https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 카카오 채용연계형 인턴십 Level 2 문제다. dfs나 bfs로 접근할 수 있지만 나는 배열을 끝까지 탐색하며 응시자인 경우 거리두기를 지켰는지 확인했다. 거리두기를 위반한 경우는 1. 바로 옆이 응시자인 경우 2. 대각선이 응시자고 대각선 사이에 테이블이 있는 경우 3. 맨해튼 거리 2에 응시자가 있고 그 사이에 테이블이 있는 경우 이렇게 세가지기 때문에 세가지 경우에 해당하는 배열을..
https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 카카오 채용연계형 인턴십 Level 1 문제다. HashMap의 key를 문자열 영단어로, value를 숫자로 저장했다. 그리고 문자열을 하나씩 탐색해 영단어를 숫자로 치환했다. 지금 코드도 직관적이지만 replaceAll을 사용해도 좋을 것 같다. import java.util.HashMap; class Solution { public int solution(String s) { Has..
https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 카카오 인턴십 Level 3 문제다. 처음에는 2차원 배열에 최소 값을 저장해나가는 BFS로 구현했는데, 정확도가 떨어졌다. 2차원 배열+ bfs로 풀었을 때의 반례는 아래와 같다. {{0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 1, 1, 1, 1, 1, 0}, {1, 0, 0, 1, 0, 0, 0, 0}, {1, 1, 0, 0, 0, 1, 1, 1}, {1, 1, 1, 1..
https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 카카오 인턴십 Level 3 문제다. 1차원 배열이 주어지고 가장 짧은 구간을 찾는 문제기 때문에 바로 투포인트로 접근을 했다. 처음엔 HashMap이 아니라 배열을 통해 구간의 값들을 저장하고, for문을 통해 모든 종류의 보석이 담겨있는지 확인했기 때문에 시간 초과가 났다. 중복을 허용하기 않는 HashMap의 value값을 보석의 갯수로 저장하는게 포인트인 것 같다. 어떻게 하면 효..
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 카카오 인턴십 Level 2 문제다. 어려운 문제는 아니었지만 계산하는 과정에서 연산자와 피연산자를 삭제하는게 너무 헷갈렸다. 연산자 우선순위의 모든 경우는 6개의 경우만 존재하기 때문에 이를 배열에 저장하고 우선순위에 맞게 값을 계산하여 최대값을 찾는다. 수식이 문자열 형태로 들어오기 때문에 문자열을 하나씩 탐색하여 숫자는 숫자를 저장하는 list에 저장하고, 연산자는 연산자를 저장하는..
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 카카오 인턴십 Level 1 문제다. 키패드가 다음과 같이 존재한다. 1 2 3 4 5 6 7 8 9 * 0 # 번호 순서대로 다음과 같은 거리를 부여하고, 각 손가락이 어떤 점수의 키패드에 위치하는지 left변수와 right변수에 저장한다. 1 1 1 2 2 2 3 3 3 4 4 4 왼쪽 키패드는 왼쪽 손가락, 오른쪽 키패드는 오른쪽 손가락을 이용했고 가운데 키패드는 거리 값을 각각 계..
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 카카오 개발자 겨울 인턴십 Level 2 문제다. {}로 구분을 해 각 집합을 ArrayList에 넣고, ArrayList의 길이에 따라 정렬한다. 그리고 순서대로 HashMap에 넣으면서 튜플을 생성한다. 튜플의 각 숫자를 넣은 순서대로 하기 위해 HashMap의 키값에 인덱스를 부여하고 인덱스 값에 따라 정렬했는데, LinkedHashSet을 사용하거나 HashSet의 add함수를 사..