프로그래머스 12

[SQL SELECT] 프로그래머스 역순 정리하기, 여러 기준으로 정렬하기, 상위N개 레코드

코딩테스트 연습 - 역순 정렬하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr SELECT NAME, DATETIME from ANIMAL_INS order by ANIMAL_ID desc 역순 DESC, 정순 ASC 쿼리 작성법 : ORDER BY 컬럼명 DESC 코딩테스트 연습 - 여러 기준으로 정렬하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같..

[SQL GROUP BY] 프로그래머스 고양이와 개는 몇 마리 있을까, 동명 동물 수 찾기, 입양 시각 구하기

코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr select ANIMAL_TYPE, COUNT(ANIMAL_TYPE) from ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE 등장하는 개념 GROUP BY, COUNT 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. A..

[완전탐색 simulating 예제] 프로그래머스 완전탐색 level2 소수찾기

문제 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제 풀이 첫번째 난관 주어진 원소들로 만들 수 있는 정수들을 만드는 것이 문제였다. 이 때 permutations 함수를 이용했다. from itertools import permutations 처음 사용하는 모듈이였는데, 알아야 하는 유용한 모듈이였다. 이 사이트를 이용해 사용했다. https://blog.naver.com/hunii123..

[Divide and Conquer 예제] 프로그래머스 Level3 네트워크

문제 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 풀이 1 네트워크의 개수는 연결되지 않는 컴퓨터들의 상황의 개수이다. computer[i][i]에서 이동할 수 있는 컴퓨터들을 recursion으로 false로 바꾸어 준다. solution에서, 1~n까지의 컴퓨터 개수대로 dfs를 돌리고, 각 computer[i][i]와 연결되어 있는 컴퓨터들로 이동해서 값을 false로 바꾸어 준다. 만약 마지막이 true로 끝나면 answer++ 한다. #include #include using names..

[Divide and Conquer 예제] 프로그래머스 Level2 타겟넘버

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

[프로그래머스 Level3 그래프] 가장 먼 노드

문제 입출력 문제풀이 #include #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; //n개의 노드가 있는 그래프가 있습니다. //1번 노드에서 가장 멀리 떨어진 노드의 개수 구하기 //최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들 //이차원 배열이 주어지고 1번 노드에서 출발. 노드의 개수 주어짐. //[[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] //1번에서 2번으로 가는 최단 경로는? //coninfo : 각 연결되어 있는 시작 노드와 끝 노드들을 넣어 연결 정보 저장 // vector co..

[프로그래머스 Level1] 신규 아이디 추천

문제 입출력 문제풀이 1. 7단계를 순차적으로 맞춰야 하므로 단계별 코드를 짰다. -1단계 : 대문자->소문자로 변경, tolower() 함수를 이용했다. -2단계 : 조건에 맞지 않는 문자 삭제하기. if조건문에 문제조건에 맞지 않는다면 으로 썼는데 시간초과가 났다. if조건문에 문제조건문을 쓰고 continue와 else문으로 제거를 했다. 제거시, erase()함수를 이용한다. : new_id.erase(new_id.begin() + i); -3단계 : 문자 '.' 가 2개 이상이면 1개만 존재하도록 하기. 나는 i-1와 i+1가 '.'일때 모두 따져야 한다고 생각했는데( 시간초과 남) , i 검사시 i-1 만 따지면 되었다. 그래서 for문도 i=1부터 시작! i-1있으니까. -4단계 ~ 7단계 ..

[프로그래머스 Level1] 실패율

문제 입출력 문제 풀이 1. 실패율 구하기 = 해당 스테이지 통과하지 못한 사람 / 해당스테이지도전자 (해당 스테이지까지 온 사람) - 주어진 배열 : 스테이지 통과하지 못한 사람들의 스테이지 번호들 (총 배열의 원소개수 = 총 인원) - 배열을 정렬하기 : 해당 스테이지까지 온 사람과 아닌 사람을 구분할 수 있을 것 같아서. - stages[index] 가 1~5 (스테이지들)이라면 index++해주면서 index값이 실패율의 분자니까 이용한다. - usernum은 해당 스테이지도전자인데, 다음 for문 전에 스테이지를 통과못한 인원(index == failcnt)를 빼준다. - 결과값에 필요한 스테이지 번호와 함께 fail 벡터에 실패율과 스테이지번호 저장한다. while(stages[index] =..

[프로그래머스 Level1] 다트게임

문제 입출력 문제 풀이 1. string dartResult 를 쪼개서 조건문으로 숫자/알파벳/옵션을 비교한다 - #include string STL 이용한다 : dartResult[i] , dartResult.size() 2. 숫자 비교하기 - dartResult[i]가 0~9사이일 때의 조건문 설정 - 숫자가 0-9일때 값 저장 - 숫자가 10일때 : [i+1]가 0이면 10을 저장한다. i++을 통해 10 다음의 문자열을 비교하기 3. 알파벳 비교하기 - dartResult[i]가 S D T 일 때의 조건문 설정 - D, T일 때 pow(score, 2)를 이용해 제곱수를 저장한다 - pow()는 #include 4. 옵션 비교하기 - 알파벳 다음의 [i+1]을 비교하기 - *일때 : 전의 값 또한..