목록Study/Algorithm (400)
hwooo
https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 위의 문제를 풀고 아이디어를 얻었다. 백준 문제는 전위순회 값 -> ..
https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 풀이 입력은 전위순회로 주어지므로 입력의 순서는 root -> left_child -> right_child 순이다. 이 때 현재 위치의 값보다 작은 값이 나올 때까지가 현재 값의 left_child, 그 이후의 값이 right_child 이다. 50 30 24 5 28 45 98 52 60 위의 입력의 경우 50의 left_child 값은 28까지이고, right_child 값은 4..
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 큐에 현재 입력된 벡터의 값을 인덱스와 함께 저장해줬다. 큐는 인덱스로 접근이 안 되므로 priorities에서 가장 큰 값을 찾았고, 이 때 해당되는 인덱스 값도 같이 return했다. 큐에서 해당 값이 나올 때까지 push, pop을 반복하고 이 때 꺼내야 될 값이 location과 같으면 answer을 반환했다. 코드 #include #include #include using names..
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 DP를 이용하여 풀었다. 1, 2칸씩 뛸 수 있으므로 n번째 칸에 가려면 n-1, n-2 번째 칸에서 올 수 있다. 따라서 n번째 칸에 가는 경우의 수는 (n-1번째 칸에 가는 경우의 수 + n-2번째 칸에 가는 경우의 수)이다. 코드 #define DIV 1234567; long long solution(int n) { long long dp[2001]; dp[1] = 1, dp[2] = ..
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 스택을 사용하여 '(', '{', '[' 가 들어왔을 땐 스택에 넣어줬고 ')', '}', ']' 가 들어왔을 땐 직전에 들어온 괄호와 짝이 맞는지 확인했다. 짝이 맞을 때만 참을 반환해 answer를 구했다. 코드 #include #include #include #include #include using namespace std; bool Is_right(string s){ stack Sa..
https://school.programmers.co.kr/learn/courses/30/lessons/120838 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 공백을 기준으로 문자열을 잘라 해당 문자열이 저장되어 있는 map에서 알파벳을 가져왔다. 문자열의 끝에 공백이 없어 마지막에 들어온 문자는 answer에 저장되지 않으므로 반복문 탈출 이후에 마지막 문자를 한 번 더 저장해준다. 코드 #include #include #include #include using namespace std; string solution(string letter) ..
https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 bfs를 사용하여 길을 찾았다. 최단 거리를 찾는 문제이므로 다음에 가려고 하는 곳이 이미 지나쳤던 곳이라면 갈 필요가 없음 -> visited 배열로 확인 다음 탐색할 곳은 큐에 담았고 Q({ {next_x, next_y} , now_cnt }) 의 형식을 사용했다. S, E는 정해지지 않았으므로 한 번은 배열을 뒤져야 한다. 그래서 이 때 vector 형식을 2차원 배열로 바꿔주었다. ..
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 모든 문자를 대문자/소문자로 획일화했다. cities를 순회하며 cache에 주어진 도시가 있다면 +1, 없다면 +5로 계산한다. 이 때 cacheSize가 3이고 cities = [seoul, la, jeju, jeju, jeju] 일 경우 cache = [seoul, la, jeju]이다. 따라서 cache에 도시가 있다면 맨 앞의 도시를 지우는 게 아니라, 해당 도시의 위치만 변경해주어..