문제 링크 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 풀이 어려웠다... 실제였으면 이것만 풀었을거같다. check() 함수를 통해서( m 1) m이 자기 자신일 때, 1, 2, 3이 자신의 문자(char)와 같은 지 비교하여 bool형을 return 하였다. ( 2 3) 그리고 제일 큰 while 문은 터뜨린 것이(지워진 블락이) 없을 때 탈출하도록 하였다. check() 함수의 인덱스 초과를 방지하기 위해 2중 for문의 m-1, n-1로 돌렸으며 copy본에 '0' 문자로 바..
문제 링크 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 풀이 처음에는 솔루션 함수에다가 다 짜다가 너무 길어져 중복되는 것은 함수로 뺐다. ex() 함수는 큐를 이용하여 2글자씩 소문자로 바꿔서 넣는 역할을 한다.(물론 예외처리 다했다.) 그리고 toLower() 함수는 소문자로 바꾸는 STL을 몰라서 일단 그 자리에서 직접 만든 것이다. 그리고 algorithm에 있는 set_union함수와 set_intersection함수를 이용하여 자카드 유사도를 구하였다. 풀이 요약 1) ..
문제 링크 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 � programmers.co.kr 풀이 연산자(long long)와 피연산자(char)를 미리 vector 컨테이너에 담고 "+-*"를 순열로 돌리면서 해당 연산자와 같으면 계산하고 다르면 넘어가는 식으로 구현하였다. 연산 순서가 있기 때문에 스택에 넣어서 pop_back()하는 식으로 구현하였다. next_permutation()함수를 사용하여 모든 조건을 검사하였다. 더보기 #include #include #include #include using namespace std; ..
문제 링크 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. � programmers.co.kr 풀이 return 하는 값이 폰켓몬 종류의 최대값이므로 내가 몇 마리의 폰켓몬을 선택했는지는 알려주지 않아도 된다. 따라서, 폰켓몬 nums 배열을 sort한 후 같은 폰켓몬을 고르지 않으면서 num.size()/2 만큼 고르게 되거나 num.size()안에서 최대 폰켓몬 종류 개수를 return 하면된다. 더보기 #include #include using namespace std; int solution(vector nums) { int an..
문제 링크 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 풀이 처음과 맨 끝에 '{', '}'을 제거하고 '{'를 만나면 안의 숫자들을 map에 할당한 후 map을 순회하면서 개수가 1부터 순서로 하여 answer에 없는 숫자를 넣어주었다. 더보기 #include #include #include #include #include using namespace std; vector solution(string s) { vector answer; map count..
문제 링크 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 � programmers.co.kr 풀이 처음에 많이 고민했다. 재귀로 하면 비효율적 일지 하면서 찾아보았더니 재귀로도 풀린다고는 한다. 하지만 함수 하나로 끝내고 싶었기에 next_permutation() 함수를 사용하여 순열을 돌렸고 모든 조건을 검사하였다. 완전 탐색이다. 1. 자리를 배치한다. 2. sort한다.(오름차순- next_permutation(), 내림차순- prev_permutation()) 3. do-while()문으로 조건 검사하며 개수를 증가시킨다. 더보..
문제 링크 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 풀이 풀이 순서를 주었기 때문에 해당 solution함수를 재귀 함수로 주어진 풀이대로 수행하였다. 풀이를 주니까 따라서 하기만 했더니 바로 성공 더보기 #include #include #include #include using namespace std; string solution(string p) { string u = ""; string v = ""; // 빈 문자열 검사 if(p.length()==0) { return ""; } else { /..
문제 링크 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 풀이 bundle변수를 선언하여 1개씩 묶은 것부터 문자열의 length/2까지 묶은 것의 개수를 vector 컨테이너에 넣고 최소를 return 하였다. 더보기 #include #include #include using namespace std; int solution(string s) { int answer = s.length(); int bundle = 1; int len = s.length(); vector v; // cout