Algorithm/프로그래머스
-
[ 2018 KAKAO BLIND RECRUITMENT 1차] 프렌즈4블록도움말Algorithm/프로그래머스 2020. 9. 4. 18:04
문제 https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 처음에는 BFS로 풀 수 있는 문제인가 했지만 아래 그림과 같이 4칸 씩 되어 있는 것만 지울 수 있고 board의 사이즈가 작기 때문에 for문을 중첩해서 확인하면서 찾는 편이 나을 것이라 생각했다. Code
-
[ 2018 KAKAO BLIND RECRUITMENT ] 뉴스 클러스터링Algorithm/프로그래머스 2020. 9. 2. 15:48
뉴스 클러스터링 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 자카드 유사도는 원소의 중복을 허용하는 다중집합에 대해서 확장할 수 있다. 다중집합 A는 원소 1을 3개 가지고 있고, 다중집합 B는 원소 1을 5개 가지고 있다고 하자. 이 다중집합의 교집합 A ∩ B는 원소 1을 min(3, 5)인 3개, 합집합 A ∪ B는 원소 1을 max(3, 5)인 5개 가지게 된다. 다중집합 ..
-
[ 2018 KAKAO BLIND RECRUITMENT ] 추석 트래픽Algorithm/프로그래머스 2020. 8. 29. 22:51
문제 https://programmers.co.kr/learn/courses/30/lessons/17676 코딩테스트 연습 - [1차] 추석 트래픽 입력: [ 2016-09-15 20:59:57.421 0.351s, 2016-09-15 20:59:58.233 1.181s, 2016-09-15 20:59:58.299 0.8s, 2016-09-15 20:59:58.688 1.041s, 2016-09-15 20:59:59.591 1.412s, 2016-09-15 21:00:00.464 1.466s, 2016-09-15 21:00:00.741 1.581s, 2016-09-15 21:00:00.748 programmers.co.kr 파싱 후에 계산을 어떻게 해야할지 고민을 많이 한 문제였다. 문제에서 2016-0..
-
[ Summer/Winter coding 2019 ] 종이접기Algorithm/프로그래머스 2020. 5. 19. 22:04
어떻게 접근할까 하다가 종이를 직접 접어보았다. 이를 list로 표현해보면 중간을 기준으로 양 옆이 모양은 대칭이지만 숫자는 반대로 이루어져 있다. n = 1 : [ 0 ] n = 2 : [ 0 0 1 ] n = 3 : [ 0 0 1 0 0 1 1 ] n = 4 : [ 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 ] Code def solution(N): answer = [0] for i in range(1, N): temp = [] for j in range(0,len(answer)): temp.append(answer[j]) temp.append(0) answer.reverse() for j in range(0,len(answer)): if (answer[j] == 0): temp.appen..
-
[ 2019 KAKAO BLIND RECRUITMENT ][ C++ ] 오픈채팅방Algorithm/프로그래머스 2020. 5. 7. 18:22
stringstream 을 이용하면 C의 strtok와 같이 공백 문자를 기준으로 string을 자를 수 있다. 이를 사용하기 위해서는 #include sstream 를 선언해야 한다. 이 문제를 풀 때 가장 고민했던 점이 공백 문자를 기준으로 문자열을 어떻게 쉽게 나눌 수 있을까 였는데 strtok를 쓰는 것보다 stringstream 클래스를 이용하면 문자열 처리가 쉬워진다. Code Strtok를 사용하는 방법 #include #include #include #include #include using namespace std; map m; vector rec; // 문자열 자르기 void splite(vector record) { char *str = new char[100]; for (int i ..
-
[ 2020 KAKAO BLIND RECRUITMENT ] 자물쇠와 열쇠Algorithm/프로그래머스 2020. 3. 12. 21:11
CatServant 문제 풀이 위의 그림과 같이 주위에 zero padding을 주고 Lock의 모든 좌표를 확인하면서 진행하면 된다. 그 과정을 key를 90도 씩 회전하면서 4번을 반복하는데 Lock과 Key가 딱 맞아 떨어지는 경우 Ture를 return 해준다. 그런데 이 때, 자물쇠 영역 내에서는 열쇠의 돌기 부분과 자물쇠의 홈 부분이 정확히 일치해야 하며 key의 돌기와 Lock의 돌기가 만나서는 안된다! 2가지 사항만 기억하면 크게 어려운 문제는 아니다. Code #include #include using namespace std; int lockBoard[60][60]; int rotakey[20][20]; int copyBoard[60][60]; void clearBoard(int loc..
-
[ 2020 KAKAO BLIND RECRUITMENT ] 괄호 변환Algorithm/프로그래머스 2020. 3. 11. 19:20
CatServant 문제 설명 문제를 잘못 이해해서 한참 헤맨 문제였다. 입력 조건은 아래와 같다. '(' 와 ')' 로만 이루어진 문자열이며 길이는 2 이상 1,000 이하인 짝수 문자열 p를 이루는 '(' 와 ')' 의 개수는 항상 같다. '균형 잡힌 문자열'을 아래와 같은 조건으로 통해 '올바른 괄호 문자열'로 변환할 수 있다. 이 조건을 제대로 안 읽어서 한참을 고민했다. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. ..