SQL 정리 1: SELECT, 함수, NULL 처리 📌 SELECT 문 기본 구조1. 모든 컬럼 조회SELECT * FROM 테이블명;예시:SELECT * FROM DEPT; -- DEPT 테이블 전체 조회2. 특정 컬럼 조회SELECT 컬럼1, 컬럼2 FROM 테이블명;예시:SELECT DEPTNO, DNAME FROM DEPT; -- 부서 번호와 이름만 조회📌 중복 제거 (DISTINCT)SELECT DISTINCT 컬럼1, 컬럼2 FROM 테이블명;예시:SELECT DISTINCT JOB, DEPTNO FROM EMP; -- 직무와 부서 번호 중복 제거📌 수학 연산자 활용연산자설명예시+덧셈SAL + 100-뺄셈SAL - 500*곱셈SAL * 1.1/나눗셈DEPTNO / 10()우선순위(..
분류 전체보기

https://www.acmicpc.net/problem/21738 #문제 간단 정리 bfs 문제 #문제 해결 방법 우선 문제를 잘 이해해 보면펭귄이 이어진 지지대가 2개 는 있어야 된다 -> 즉 펭귄과 지지대를 잇는 경로만 멀쩡히 있으면 된다-> 즉 가장 가까운 지지대 2개를 골라서 그 지지대 경로를 제외한 모든 얼음을 깨면 된다-> 가장 가까운 지지대 2개를 bfs 를 이용해서 찾는다 라는 발상이 가능하다중요한건 dfs 를 처음에 사용하려 했는데 가장 가까운 지지대 경로 를 찾아야해서 부적합 하기 때문에 bfs 를 사용했고 ,( 재귀형식으로 만드는ㄴ게 불가능하진 않겠지만 귀찮을 것이다) 그리고 결국 가장 가까운 거리의 2개의 지지대 경로만 찾으면 되기 때문에2개를 찾자마자 바로 결과를 출력했다.딱히..

https://www.acmicpc.net/problem/2563#include #include #include using namespace std;int a, b;int n;vector> paper;void fill() { for (int i = 0; i > n; paper.resize(260, vector(260)); while (n--) { cin >> a >> b; fill(); } int ans = 0; for (int i = 0; i

https://www.acmicpc.net/problem/15925 #문제 간단 정리구현 + 브루트 포스 문제 #문제 해결 방법우선 브루트포스로 문제를 풀리게하도록 고심한 흔적이 여럿 보이는데 문제의 n 이 31 까지로 상당히 작고 보드가 홀수로만 주어진다는 점이 주목할만한 점인데 만약 행이나 열을 1 이나 0으로 바꾸게 되면 항상 1이나 0이 늘어나기 때문에 다음에 더 유리한 조건이 된다 때문에 행과 열을 반복해서 교차로 키거나 끌 수 있는지 확인해주면 (N^2) 한번 키거나 끌 때 N개의 컴퓨터가 바뀌니까 이 작업이 최대 N 번복 N^2 * N 해서 대략 N^3 정도인 듯 하다 나머지는 개인의 구현 역량에 따라 구현하면 된다. #전체 코드#include #include #include using..

https://www.acmicpc.net/problem/17088 #문제 간단 정리수학 + 브루트 포스 문 #문제 해결 방법 등차수열이기 때문에 결국에는 첫항과 마지막항에 +1 0 -1 을 하면 공차가 각각 정해지는데 이렇게 3*3 경우의 수로 공차가 정해지면 각 항에서 start + 공차 * 인덱스 를 한 값이 각 벡터에 올바르게 들어 갈 수 있는지 체크해주면 (+1 -1 을 해서 값을 만들 수 있는지 ) 확인해 주면 된다 #전체 코드#include #include #include using namespace std;int n;int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; vector vec(n);..

https://www.acmicpc.net/problem/30023 #문제 간단 정리 그리디 + 문자열 + 구현 정도로 볼 수 있는 문제 #문제 해결 방법 일단 모든 색을 같게 맞추는데 있어서 우선 앞에서부터 하나씩 맞춰간다고 생각 할 수 있다.이런 경우에는 맨 앞의 색이 3가지색으로 고정되고그 앞에 색에 맞춰서 나머지 색깔을 맞춰주면 된다. 이 사고의 흐름은 모든 3가지 연속된걸 바꿔보는 건 너무 많기 때문에자연스럽게 하나씩 앞에서부터 맞춰본다는 생각이 드는게 맞는 것 같다 그렇게 마지막 -2 개 까지 맞춰놓고 마지막 2개도 같은색인지 확인해 주면 되는데 여기서 문자열 바꾸는걸 문자열 함수로 바꿔주게되면 문자열 바꾸는데 n의 시간복잡도가걸리기 때문에 배열로 처리해주는게 좋다그래서 처음엔 문자열 함..

https://www.acmicpc.net/problem/14503 #문제 간단 정리 전형적인 구현 , 시뮬레이션 문제라고 할 수 있다. #문제 해결 방법 중요한건 우리가 뭘 구현해야될지 순서를 잘 생각하고 분할해야된다특히 특정 흐름을 생각하면서 함수로 분할하는게 매우 도움이 된다 이 문제 같은 경우에는 현재 칸이 아직 청소되지 않은 경우, 현재 칸을 청소한다.현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 없는 경우,바라보는 방향을 유지한 채로 한 칸 후진할 수 있다면 한 칸 후진하고 1번으로 돌아간다.바라보는 방향의 뒤쪽 칸이 벽이라 후진할 수 없다면 작동을 멈춘다.현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 있는 경우,반시계 방향으로 90도회전한다.바라보는 방향을 기준으로 앞쪽 칸이 청소되지 ..

https://www.acmicpc.net/problem/18114 #문제 간단 정리 투 포인터로 풀었다 #문제 해결 방법 1개로 되는지 확인하고2개로되는지확인3개로되는지 확인한다 2개로 되는지 확인하는 경우는 전형적인 투포인터로 사용하고 3개로되는경우는i번째 를 선택한 다음에다른 2개를 투포인터로 조건에 맞도록 탐색한다 #전체 코드#include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, C; cin >> N >> C; vector vec(N); for (int i = 0; i > vec[i]; sort(vec.begin(), vec.end())..

https://www.acmicpc.net/problem/12924 #문제 간단 정리 문자열을 사용한 구현문제정도 #문제 해결 방법 다른사람들은 어떻게 풀었을지 모르겠지만 일단 문제에서 주어진거처럼 뒤에서 1~ 문자열 길이 만큼 잘라서앞으로 붙여서 B 보다 작다면 ok 라는 방식으로 직관적으로 구현햇다 대략 길이가 7자리수니까 주어진 범위가 이백만 정도니까 이백만 x 7 해도 문제가 없음을 알 수 있다. #전체 코드#include #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); string sA, sB; cin >> s..

https://www.acmicpc.net/proble #문제 간단 정리 xor 비트연산과 집합과 맵을 잘 사용하자 #문제 해결 방법 우선 이 특정 더하기 접근법을 생각해보면 10 01 일때 1이되고00일때 0 이 되기 때문에 xor 연산과 같다는 걸 알 수 있다 또한 xor 연산을x와 해주게 되면 현재 숫자와 xor연산을해서 x가 나오는 숫자를 알 수 있는데 숫자는 1~9까지 밖에 없기 때문에이 숫자가 전체 몇개가 나오는지 맵으로 카운팅 해주고 각 주어진 숫자를 순회하면서 이 x가 되는 숫자를 확인해서배열에 얼마나 이 숫자가 들어있는지 확인해주면 만족하는 쌍이 몇개인지 알 수 있다. 그리고 물론 중복되는 값이 있으니 이를 후처리 해줄 필요도 있다. #전체 코드 #include #include #..