프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE '강원도%' ORDER BY FACTORY_ID ASC; 여기서 중요한 것은 LIKE 사용법이다. LIKE는 문자열에 특정 단어나 문자열이 포함되어있는지 확인하고 싶을 때 사용한다. %, _를 이용해서 사용할 수 있는데, 위 코드처럼 강원도%이렇게 사용하면 문자열 시작이 강원도로 시작하는 값들을 찾는 것이다. WHERE colunm LIKE '_____" 위 처럼 _를 5..
코딩테스트
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD FROM DOCTOR WHERE MCDP_CD='CS'OR MCDP_CD='GS' ORDER BY HIRE_YMD DESC, DR_NAME ASC; 배운점 1. DATE_FORMAT DATE_FORMAT함수는 날짜 형태를 지정해주는 함수인데, 인자로 바꾸고 싶은 컬럼과 날짜 포맷을 입력해주면 된다. '%Y-%M-%D' 이렇게하면 2020-March-1st 이런식으로 출력되..
플로이드 와샬 알고리즘을 이용해서 풀었다. 자세한 방법은 아래의 블로그에서 공부해보면 좋을 것 같다. [알고리즘] 플로이드 와샬 (Floyd Warshall) 목차 플로이드 와샬이란? 다익스트라 알고리즘은 하나의 노드에서 출발했을 때 다른 모든 노드로의 최단 경로를 구하는 알고리즘이다. 하지만 플로이드 와샬 알고리즘은 모든 노드에서 모든 노 propercoding.tistory.com 플로이드 와샬 알고리즘은 A 노드에서 B 노드로 가는 가장 최소한의 길이를 구하는 방법에 사용되는데 거쳐가는 노드를 이용해서 최소한의 길이를 구하는 방법이다. 이 플로이드 와샬 알고리즘의 개념은 어떤 식으로 문제에 대입해서 결과를 도출해내는 것일까? 만약에 A와 B의 관계를 알고 싶다. 하지만 A,C의 관계 정보 C, B의..
이 문제는 단순 구현 문제이다. 근데 일단 문제를 이해하는데 꽤나 머리가 아팠다. 입력 예제 1번을 가지고 설명을 한다면 위처럼 점들 사이의 거리를 계산을 해서 가장 짧은 집중국 거리를 구하는 방법을 것이다. 그래서 첫번째 집중국의 거리 2와 두번째 3을 더해서 답이 5가 나온다. 문제를 간단하게 생각하는 방법이 있다. 일단 집중국의 개수는 K개일테니 그러면 일렬로 나열되어있는 분에서 가장 긴거리 부분을 K - 1번 지운다고 생각하면 된다. 예를 들어서 위처럼 센서 사이의 모든 거리를 나타내고 하지만 우리는 K개의 집중국을 만들어야하고 그러면 가장 긴 거리 애들을 K - 1번 제거하면 총 K개의 집중국이 남게 되는것이다. 그러면 다시 순서를 나타내면 1. 센서의 위치들을 담고 오름차순 정렬한다. 2 센서..
2240번: 자두나무 자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어 www.acmicpc.net DP에 아직 익숙하지 않구나를 느낄 수 있었던 문제였다. [C++] 백준(BOJ) 2240 - 자두나무 - 문제 https://www.acmicpc.net/problem/2240 2240번: 자두나무 자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 1004dustkd.tistory.com 위 블로그에서 DP 힌트를 보지 않았다면 DFS, BFS로 풀려고 했을 것이다. DFS나 BFS..
이 문제를 풀기 위해서 꽤 많은 시간이 들었다. 일단 수학적으로 접근을 해야하기 때문에 패턴을 파악하고 패턴을 수식화하는 능력이 필요하다. 그럼 일단 패턴을 분석해서 식을 도출해 보자. 0010이 되기 위해서는 0000, 0001을 지나쳐야하고 1의 개수는 총 1개이다. 0100이 되기 위해서는 0000, 0001, 0010, 0011을 지나쳐야하고 총 4개이다. 위 사진을 보면 0100, 0010같이 2의 배수인 자리에서 그 위에 1이 몇개인지 알 수 있는 수학 패턴 식을 구할 수 있다. K[i] = K[i - 1] * 2 + (1LL B; setK(); cout
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(PRODUCT_ID) > 1 ORDER BY USER_ID ASC, PRODUCT_ID DESC SELECT 연습 문제로 같은 유저가 같은 물건을 중복으로 산 경우를 찾아야하는 문제다. 이 문제의 키포인트는 GPOUP BY로 그룹화를 해서 HAVING으로 조건을 걸어야하는 것이다. 그리고 ORDER BY로 정렬 조건을 넣어주면 된다. ASC는 오름차순, DE..
#include #include #include #include using namespace std; int solution(vector clothes) { int answer = 1; map collector; for (vector cloth : clothes) { collector[cloth[1]]++; } for (auto &value : collector){ answer *= value.second + 1; } return answer - 1; } 사실 쉬운 문제인데, 어떻게 풀어야할지 헷갈렸었다. 그런 문제는 보면 조합으로 모든 경우의 수를 찾아봐야하나? 이런 생각도 들고 그랬지만 특정 케이스를 찾는 것이 아닌, 경우의 수만 구하면 되기 때문에 의상 수에 +1을 해서 다 곱하고 -1을 하면 아무..