본문 바로가기

Algorithm

(640)
2019 KAKAO BLIND RECRUITMENT 후보키 programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr map 중복 체크 스트링으로 묶어서 하는 아이디어 ! #include #include #include #include #include using namespace std; int N, M; vector res; vector che; vector vec; ..
2018 KAKAO BLIND RECRUITMENT[1차] 프렌즈4블록 programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 하나의 문자로 부터 터질 때 떨어지는 것이 아니라 한번의 턴이 끝난 후에 떨어지는 것임. 로직 잘 생각할 것! #include #include #include #include #include using namespace std; char temp[30][30]; int solution(int m, int n, vector board) { int answ..
2018 KAKAO BLIND RECRUITMENT[1차] 뉴스 클러스터링 programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 직관적으로 풀면 되고 다만 주의 할 점은 RA, RA, RB 와 같은 경우에 첫번째 RA에 대해서 교집합과 합집합에 대해 계산 했으면 두번째 RA는 사용되지 말아야 하므로 bool 처리를 해줘야 함. #include #include #include #include #include #include using namespace std; map temp_a..
2019 KAKAO BLIND RECRUITMENT오픈채팅방 programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr map을 활용해서 간단히 구현할 수 있다. #include #include #include #include using namespace std; map name; vector answer; vector solution(vector record) { int size = record.size(); for(int i = 0; i < size; i++) { int parsing_co..
백준 1629번 곱셈 문제 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. 출력 첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다. 분할 정복으로 풀 것. 2의 배수 제곱은 1~2의 배수까지 가지 말고 2의 배수 / 2 제곱 만큼만 구한 뒤 그것을 곱해주면 시간이 반으로 줄어든다. #include #include #include #include #include using namespace std; long long A, B, C; long long cal(long long A, long l..
백준 17780번 새로운 게임 문제 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다. 게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 4가지 중 하나이다. 턴 한 번은 1번 말부터 K번 말까지 순서대로 이동시키는 것이다. 한 말이 이동할 때 위에 올려져 있는 말도 함께 이동하며, 가장 아래에 있는 말만 이동할 수 있다. 말의 이동 방향에 있는 칸에 따라서 말의 이동이 다르며 아래와..
백준 2529번 부등호 문제 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시된 부등호 순서열 A가 다음과 같다고 하자. A => 부등호 기호 앞뒤에 넣을 수 있는 숫자는 0부터 9까지의 정수이며 선택된 숫자는 모두 달라야 한다. 아래는 부등호 순서열 A를 만족시키는 한 예이다. 3 1 7 0 이 상황에서 부등호 기호를 제거한 뒤, 숫자를 모두 붙이면 하나의 수를 만들 수 있는데 이 수를 주어진 부등호 관계를 만족시키는 정수라고 한다. 그런데 주어진 부등호 관계를 만족하는 정수는 하나 이상 존재한다. 예를 들..
백준 10021번 Watering the Fields 문제 Due to a lack of rain, Farmer John wants to build an irrigation system to send water between his N fields (1 x >> y; node[i] = { x,y }; } for (int i = 0; i < N; i++) { parent[i] = i; } for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { int x1 = node[i].first; int y1 = node[i].second; int x2 = node[j].first; int y2 = node[j].second; int cost = (x1 - x2) * (x1 - x2) + (y1 - y2) * (..