CodingTest Practice/Programmers 33

프로그래머스 : 다음 큰 숫자 (C++, Lv.2,연습문제)

https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 따로 코멘트할 것 없이 그냥 코드만 봐도 이해가 될 것이다! 레벨 2 치고 나름 쉬운 문제인 것 같다. 소스코드 #include #include using namespace std; // 해당 수를 2진수로 바꿀 때 1의 갯수 int get1(int n) { int count = 0; while(n) { if(n%2 == 1) c..

프로그래머스 : 124나라의 숫자 (C++, Lv.2, 연습문제)

https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제를 보자마자 3진수 구하는 것 처럼 풀면 되겠다고 생각했는데 그러기엔 규칙성이 좀 다른 느낌이었다. 대충 문제에 대해 간단한 이해만 하고 집에 와서 문제를 다시 보았다. n이 꽤 크기도 하고 예시 외의 숫자도 적어보니 어느 정도 간단한 규칙성을 알게 됐다. 대충 끄적여 본건데 숫자가 3으로 나눠 떨어지는 경우 몫에서 -1을 해주고 계산하니 얼추 맞는 느낌이라 코드를 실행해봤더니 성공적이었다.😀 소스코드 #include #include using namespace std; string solution(int n) { string a..

프로그래머스 : 완주하지 못한 선수(C++, Lv.1, 정렬 이용)

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 풀이방법: 참여자 명단과 완주자 명단을 이름순으로 정렬해 두 명단을 순서대로 비교해 나아간다. 이름이 다른 경우 참가자명단에 있는 선수는 완주하지 못한 것이므로 해당 선수의 이름을 반환한다. 왜 나는 해시 방법으로 풀지 않은 것인가,,,, 남의 풀이 좀 봐야겠다... c++ string에서 문자열을 어떻게 비교하는지 몰라서 아래 블로그를 찾아..

프로그래머스 : 네트워크(C++, Lv.3, DFS)

https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 풀이 참고 블로그 풀다가 도저히 생각나지 않아서 여러 블로그 글을 봤는데 그나마 이 블로그 글이 내가 기존에 알던 내용을 응용해서 풀어주었다. [프로그래머스] 네트워크 C++/Kotlin 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고,..

프로그래머스 : 더 맵게(C++, Lv.2, 힙)

https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 우선순위 큐에 대해 제대로 알지 못해 다른 풀이를 보고 풀었다. 정답 코드 #include using namespace std; int solution(vector scoville, int K) { int answer = 0; //오름차순 우선순위 큐 생성과 초기화 한 번에 // priority_queue pq(scoville.begin(), sco..

프로그래머스 : 타겟넘버(C++, Lv.2, DFS)

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 재귀를 통한 DFS방법으로 문제를 풀어보았다. #include #include using namespace std; int answer = 0; void dfs(vector numbers, int taget,int sum, int cnt) { if(cnt==numbers.size()) { if(taget == sum) answer++; r..

프로그래머스 : 숫자 문자열과 영단어 (C++, Lv.1)

https://programmers.co.kr/learn/courses/30/lessons/81301?language=cpp 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 하다가 문자열을 어떻게 처리해야 할지 도저히 못 풀겠어서 그냥 블로그에서 파이썬 코드 봤는데 너무 짧게 쉽게 구현되길래 현타가 왔다.... 파이썬이 진짜 대박이긴 한 것 같다 그리고 C++ 다른 사람 코드도 봤는데 파이썬 만큼이나 간단하게 구현할 사람이 있어 그 코드를 참고했다. regex_repalce 함수를 통해 문자열을 바..

프로그래머스 : 없는 숫자 더하기 (C++, Lv.1)

https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr #include #include using namespace std; int solution(vector numbers) { bool visited[10] = {0}; int answer = -1; for(int i= 0; i < numbers.size(); i++) { int num = numbers[i]; if..

프로그래머스 : 신규 아이디 추천 (C++, Lv.1)

https://programmers.co.kr/learn/courses/30/lessons/72410?language=cpp 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문자열 다루기 너무 어려워서 우선 할 수 있는 최대한의 방법으로 코드를 짜봤다. 나중에 문자열 더 열심히 해서 더 줄여봐야지. 다른 사람 코드 풀이보면 엄청 간결하게 잘 짰던데... #include #include using namespace std; string solution(string new_id) { string answe..

프로그래머스 : 문자열 다루기 기본 (C++)

https://programmers.co.kr/learn/courses/30/lessons/12918?language=cpp 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr isdigit 함수를 본 기억이 있었으나 어떻게 제대로 쓰는지 몰라서 인터넷에 검색해봤다. https://blockdmask.tistory.com/362 [C언어/C++] isdigit (숫자를 판단하는 함수) 안녕하십니다. BlockDMask 입니다. 오늘은 C언어 및 C++에서 문..