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함수를 사..
https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 카카오 개발자 겨울 인턴십 Level 3 완전탐색 문제다. 처음에는 황당할 정도로 비효율적이고 복잡하게 구현했다. 물론 맞히긴 했지만.. 제재 아이디와 사용자 아이디가 매핑되는 모든 조합을 구하고, hashset을 통해 중복 검사해 set의 사이즈를 return 했다. 제재 아이디와 사용자 아이디를 먼저 조합하는 것보단, dfs를 통해 사용자 아이디를 완전탐색 한 후 선택된 사용자 아이디..