[Summer/Winter coding -2018] 스킬트리
·
Algorithm/Programmers
스킬트리 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 설명 정해진 스킬 순서를 올바르게 배웠는지 체크하는 문제. 스킬을 의미하는 알파벳 사용 여부와 skill의 순서로 skill_trees들을 체크한다. 문제 풀이 소스코드 : C++ skill에 있는 스킬들을 true표시 해둔다. skill_trees에 담긴 스킬들을 탐색한다. 해당 스킬이 skill에 포함 된 문자라라면 순서가 맞는지 체크한다. 순서를 의미하는 index, skill[index] == s[j]이면 다음 스킬을 체크한다. 그렇지 않으면 순서가 맞지 않으므로 break 위과정을 반복하여 스킬의 모든 길이를 탐색했으면 예외가 없으므로 answer++해준다. 위 과정을 반복한다. #include #include #incl..
[Programmers - lv02] 다리를 지나는 트럭 (cpp / python)
·
Algorithm/Programmers
다리를 지나는 트럭 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 문제 설명 다리를 queue라고 생각하고 조건을 적절히 이용하여 푸는 문제다. 어렵지는 않지만 생각해야할 조건이 많아서 좀 까다로웠다. 자세한 풀이는 c++코드에 주석처리 해놓았다. 파이썬 코드도 로직자체는 같지만 for문에서 인덱스값을 마음대로 조절할 수 없어서 while문을 이용하였다. 문제 풀이 소스코드 : C++ #include #include #include #include #define PII pair using..
[Programmers - lv02] 프린터 (cpp / python)
·
Algorithm/Programmers
프린터 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 문제 설명 양방향 queue 즉, deque를 이용하여 우선순위에 맞지 않은 작업들은 다시 대기열로 push_back하여 요청한 문서가 몇번째인지 찾아낸다. cpp은 작업들을 내림차순 정렬하여 최대값을 갱샌했고 python은 max함수를 이용하여 매 탐색마다 최대값을 갱신해줬다. 문제 풀이 소스코드 : C++ #include #include #include #include using namespace std; int solution(vector pri, ..
[Programmers - lv02] 탑 (cpp / python)
·
Algorithm/Programmers
탑 코딩테스트 연습 - 탑 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다 programmers.co.kr 문제 설명 인덱스가 0인 경우에는 왼쪽에 더 이상 송전탑이 없으므로 answer에 0을 넣어주고 주어진 heights를 1부터 size까지 탐색한다. 해당 인덱스를 i라고 할 때 그 이전에 heights[i]보다 큰 높이를 찾으면 answer에 넣어주고 break를 건다. heights[i]보다 큰 송전탑이 없으면 0을 넣어준다. 문제 풀이 소스코드 : C++ #include #include using namespace std; vector solution(..
[Programmers - lv02] 쇠막대기 (cpp / python)
·
Algorithm/Programmers
쇠막대기 코딩테스트 연습 - 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레� programmers.co.kr 문제 설명 (는 스택에 쌓아주고 )일때마다 top에 있는 (를 pop하고 스택의 사이즈를 answer에 더해준다. 문제 풀이 소스코드 : C++ #include #include using namespace std; int solution(string arrangement) { int answer = 0; vector v; // stack for(int i=0; i
[Programmers - 2017 팁스타운] 예상 대진표 (cpp / python)
·
Algorithm/Programmers
예상 대진표 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 은 2의 지수승으로 주어지기 때문에 2진수와 관련이 있지 않을까 생각했다. 8팀이 주어졌을때 2번과 7번이 만나기 위해서는 총 3번의 경기를 진행해야한다. 1 2 3 4 5 6 7 8 (8팀) 2 x y 7 (4팀) 2 7 (2팀) 문제 풀이 소스코드 : C++ 2로 나눌때마다 answer++을 해주고, ( 로직을 2진수로 접근해서 시프트 연산자를 썼다.), a와 b가 같아질 때까지 반복한다. 1 2 3 4 5 6 7 8 (8팀) - 2로 나누고 answer +1 1 x y 4 (4..
[Programmers - S/W coding 2018] 점프와 순간이동 (cpp / python)
·
Algorithm/Programmers
점프와 순간이동 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 점프 : 1칸 이동 -> 1번당 베터리 1 소모 순간이동 : 현재까지 온 거리 $\times$ 2 위치로 이동 -> 1번당 베터리 소모 X 즉, 순간이동을 최대한 많이 해서 도착지점까지 도달하는 방법을 구하는 문제 Key Point 는 순간이동은 현재위치 $\times$ 2 까지 움직일 수 있다는 것이다. $$ \require{enclose} \begin{array}{r} 0\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(J)\\ 1 \,\,\dots \..
[Programmers - S/W coding 2018] 소수 만들기 (cpp / python)
·
Algorithm/Programmers
소수 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 숫자들 중 3개를 골라 더하여 소수인지 판별하는 문제 에라토스테네스의 체를 이용하여 문제를 해결한다. 문제 풀이 소스코드 : C++ 숫자의 범위의 최대는 1000이므로 나올 수 있는 가장 큰 값은 1000 + 999 + 998 이다. 따라서 대략 3000개의 숫자에 대해서 모든 소수를 찾는다. 에라토스테네스의 체를 이용하여 2~ 3000까지의 소수를 판별한다. 조합을 구현하여 N개 중 3개를 선택한다. 모두 더하여 소수인지 판별한다. #include #include #includ..
WONILLISM
'Algorithm' 태그의 글 목록 (3 Page)