[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
[Summer/Winter coding 2019] 멀쩡한 사각형 (cpp / python)
·
Algorithm/Programmers
멀쩡한 사각형 문제 설명 처음에 문제를 접했을 때, 아무리 생각해도 로직이 떠오르지 않았다. 그래서 조금 수학적으로 생각을 바꿔보았다. 대각선을 그릴 때에도 가로의 길이와 세로의 길이와 관련이 있다. 중복되는지점이 4개라는 것을 알 수 있다. 결국 이 대각선을 지나는 사각형의 개수를 구하기 위해서는 중복되는 지점의 개수를 찾아 빼주면된다. 이 경우에 중복되는 지점은 1개이다. 빨간 부분에서 중복되는 점이 발생한다. 결국 이 중복되는 점은 두 수(2,3)의 최대공약수이며 위 모양의 반복되므로 그 개수 *4를 해주면 중복되는 지점의 개수를 구할 수 있다. 결국에는 8과 12의 최대공약수가된다. 따라서 이 문제를 식으로 해결하면 answer = w*h(전체 사각형의 개수) - (w + h - gcd(w,h)가..
[2018 kakao blind recruitment] 1차 뉴스 클러스터링
·
Algorithm/Programmers
뉴스 클러스터링 문제 설명 주어지는 문자열을 2글자씩 잘라 다중 집합을 만들고 두 문자열의 다중집합의 합집합의 개수와 교집합의 개수를 구하는 문제다. 문제 풀이 소스코드 : C++ 문자열을 2글자씩 잘라주는 함수 makeArr 두 글자 중 하나라도 알파벳이 아니면 continue 두 글자 모두 소문자로 변환하고 sv에 담는다. 위 과정 반복 후 반환 변환한 두 벡터 모두 비어있다면 65536을 반환하고 종료 sv에 sv2를 복제한다. 만약 sv에 sv1 값을 찾을 수 있다면 -> 교집합, answer++ answer는 교집합의 개수이고 sv1 + sv2 - answer는 합집합의 개수이다. 교집합 / 합집합 * 65536을 반환한다. #include #include #include #include #in..
[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..
[Programmers - 2017 팁스타운] 짝지어 제거하기 (cpp / python)
·
Algorithm/Programmers
짝지어 제거하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 스택을 이용하여 상단에 같은 짝이 오면 지우는 문제 2019 카카오 겨울 인턴쉽 1번 문제의 기본이라고 생각할 수 있겠다. => Link [2019 kakao winter internship] 01. 크레인 인형뽑기 게임 (cpp/python) 크레인 인형뽑기 게임 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. wonillism.tistory.com 문제 풀이 소스..
WONILLISM
'programmers' 태그의 글 목록 (4 Page)