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를 통해 사용자 아이디를 완전탐색 한 후 선택된 사용자 아이디..
https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 카카오 개발자 겨울 인턴십 Level 3 문제다. 문제 설명에 나온 입출력 예시 처럼 무식하게 while문을 통해 징검다리를 1씩 감소시키는 방식으로 풀었었는데, 당연히 시간초과가 났다. 알고리즘을 풀면서 이분탐색을 많이 사용해본적이 없어서 어떤 문제에 이분탐색을 사용해야 하는지 캐치하지 못했던 것 같다. 결국 다른 분의 풀이를 참고했다. 어떤 징검다리를 4명이 건널 수 있다면, 징검다리..
https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 카카오 개발자 겨울 인턴십의 Level 1 문제다. 각 바구니를 뜻하는 스택 배열(doll[])을 만들어 인형을 push했고, 크레인 작동으로 꺼내온 인형을 담는 스택(stack)을 만들었다. 인형을 하나씩 stack에 집어넣을 때마다 스택의 가장 위 인형이 무엇인지 확인(peek)하고, 집어넣으려는 인형과 스택의 가장 위에 있는 인형이 같다면 그 인형 두개가 터트러져야 하므로 cnt를 ..
https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 정점 사이의 거리와 함께 트리가 입력으로 주어졌을 때, 두 정점 사이의 거리가 가장 긴 거리를 구하는 문제이다. 처음엔 DFS로 두 개의 정점을 선택하고, 선택된 두 개의 정점 사이의 거리를 구해 최종 출력할 변수보다 크면 그 거리를 대입하는 형식으로 풀었다. 제대로 값이 구해지긴 하지만 모든 정점의 조합을 구하고 그 값을 구하는 과정이 비효율적이기 때문에 시간 초과가 났다. 정점..