💻 Computer
-
요약 1. 국어는 내림차순 2. 국어점수각 같다면 영어는 오름차순 3. 국, 영이 같다면 수학은 내림차순 4. 모두 같다면 이름은 사전순 문제를 풀며 솔직히 어려운 문제는 아니었다 정말 쉬운 문제 였다, 그런데도 글을 쓰는 이유는 답을 맞추고 다른 사람의 코드를 보는데 정말 창의 적인 아이디어를 보았기 때문이다. 이걸 글로 쓰지 않으면 바보 라는 생각이 들어 내 손이 저절로 움직였다. 그럼 풀이를 시작하겠다. 처음 나의 코드 #include using namespace std; void init(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } int n; bool cmp(const tuple &a, const tuple &b){ int a..
10825 - c++요약 1. 국어는 내림차순 2. 국어점수각 같다면 영어는 오름차순 3. 국, 영이 같다면 수학은 내림차순 4. 모두 같다면 이름은 사전순 문제를 풀며 솔직히 어려운 문제는 아니었다 정말 쉬운 문제 였다, 그런데도 글을 쓰는 이유는 답을 맞추고 다른 사람의 코드를 보는데 정말 창의 적인 아이디어를 보았기 때문이다. 이걸 글로 쓰지 않으면 바보 라는 생각이 들어 내 손이 저절로 움직였다. 그럼 풀이를 시작하겠다. 처음 나의 코드 #include using namespace std; void init(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } int n; bool cmp(const tuple &a, const tuple &b){ int a..
2023.06.01 -
요약 카드 N장을 가지고 있다.가장 많이 가지고 있는 카드의 쓰여 있는 숫자를 출력 하자 CODE #include using namespace std; void init(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } int n; long long arr[100'001]; int main() { init(); cin >> n; for(int i =0; i > arr[i]; sort(arr, arr+n); long long mxval = -(1ll mxcnt) mxval = arr[n-1]; cout
11652 - c++요약 카드 N장을 가지고 있다.가장 많이 가지고 있는 카드의 쓰여 있는 숫자를 출력 하자 CODE #include using namespace std; void init(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } int n; long long arr[100'001]; int main() { init(); cin >> n; for(int i =0; i > arr[i]; sort(arr, arr+n); long long mxval = -(1ll mxcnt) mxval = arr[n-1]; cout
2023.05.31 -
요약 바이러스가 연구실에 퍼진다 무조건 벽을 3개 세워서 최대 안전영역을 확보하는 것 아이디어 벽을 세울 수 있는 모든 경우의 수를 계산한다. 최대한 적은 계산을 하기 위해 조합을 사용한다. 즉 입력받으며 바이러스를 저장, 빈칸도 따로따로 저장한다. 그리고 조합을 사용해야 하므로 do while에 next_permutation을 사용한다. 이제 각각 벽을 세울 수 있는 곳에 벽을 세우고 난 후 바이러스를 전파 시킨 다음 안전영역을 계산한다. CODE #include #define X first #define Y second using namespace std; void init(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } int n, ..
14502 - c++요약 바이러스가 연구실에 퍼진다 무조건 벽을 3개 세워서 최대 안전영역을 확보하는 것 아이디어 벽을 세울 수 있는 모든 경우의 수를 계산한다. 최대한 적은 계산을 하기 위해 조합을 사용한다. 즉 입력받으며 바이러스를 저장, 빈칸도 따로따로 저장한다. 그리고 조합을 사용해야 하므로 do while에 next_permutation을 사용한다. 이제 각각 벽을 세울 수 있는 곳에 벽을 세우고 난 후 바이러스를 전파 시킨 다음 안전영역을 계산한다. CODE #include #define X first #define Y second using namespace std; void init(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } int n, ..
2023.05.31 -
요약 판을 기울이며 빨간 구슬을 구멍으로 탈출시켜야 한다 그런데 파란 구슬도 동시에 움직이며 파란 구슬이 구멍으로 탈출하면 실패 동시에 나와도 실패 위의 문제 구문에서 중요한 문장이 있다면 기울이는 동작을 그만하는 것은 더 이상 구슬이 움직이지 않을 때까지이다. 구슬이 벽에 닿았을 때 기울이는 것을 멈춘다. 즉 끝까지 간다 라는 말이다. 중간에 멈추는 것이 없다. 첫 아이디어 먼저 bfs, dfs 사용을 생각했다. bfs를 사용하면 현재 갈 수 있는 방향으로 끝까지 간다음 visit 배열에 시간을 저장하는 식으로 하려고 했으나 파란 구슬까지 함께 어떻게 같이 동시에 움직여야 할지 감이 오지 않았다. 또 파란 구슬과 빨간 구슬이 겹쳤을 때, 이런 상황을 대체 어떻게 처리해야 할지 감이 오지 않았다. 그래서..
13460 - c++요약 판을 기울이며 빨간 구슬을 구멍으로 탈출시켜야 한다 그런데 파란 구슬도 동시에 움직이며 파란 구슬이 구멍으로 탈출하면 실패 동시에 나와도 실패 위의 문제 구문에서 중요한 문장이 있다면 기울이는 동작을 그만하는 것은 더 이상 구슬이 움직이지 않을 때까지이다. 구슬이 벽에 닿았을 때 기울이는 것을 멈춘다. 즉 끝까지 간다 라는 말이다. 중간에 멈추는 것이 없다. 첫 아이디어 먼저 bfs, dfs 사용을 생각했다. bfs를 사용하면 현재 갈 수 있는 방향으로 끝까지 간다음 visit 배열에 시간을 저장하는 식으로 하려고 했으나 파란 구슬까지 함께 어떻게 같이 동시에 움직여야 할지 감이 오지 않았다. 또 파란 구슬과 빨간 구슬이 겹쳤을 때, 이런 상황을 대체 어떻게 처리해야 할지 감이 오지 않았다. 그래서..
2023.05.31 -
요약 우리가 아는 뱀 게임과 똑같다 사과를 먹으면 몸의 길이가 늘어나고 그게 아니라면 이동하는 방식 아이디어 방향을 저장할 변수가 필요하다 (dir) 동서남북을 숫자로 지정해 준다 (동 = 0, 남 = 1, 서 = 2, 북 = 3) 문제 몸이 꺾였을 때 뱀의 꼬리는 흔들림 없이 편안하게 꺾여야 함 즉 머리만 꺾여야 함 이 부분을 고민하면서 자료구조 큐를 써야 함을 알게 되었다. 굳이 복잡하게 머리를 꺾으면 꼬리를 가만히 있어야 되고... 이러쿵저러쿵하기보다 간단하게! 큐를 써서 추가될 때마다 큐에 집어넣어 준다면 꼬리는 당연하게도 큐의 가장 앞에 위치하게 될 것이다. 맞쥬? 1. 내가 가게 될 다음칸에 사과가 있으면 다음 위치를 큐에 추가해 주고 2. 만약 빈칸이라면 큐에서 꼬리를 pop() 해주고 다음..
3190 - c++요약 우리가 아는 뱀 게임과 똑같다 사과를 먹으면 몸의 길이가 늘어나고 그게 아니라면 이동하는 방식 아이디어 방향을 저장할 변수가 필요하다 (dir) 동서남북을 숫자로 지정해 준다 (동 = 0, 남 = 1, 서 = 2, 북 = 3) 문제 몸이 꺾였을 때 뱀의 꼬리는 흔들림 없이 편안하게 꺾여야 함 즉 머리만 꺾여야 함 이 부분을 고민하면서 자료구조 큐를 써야 함을 알게 되었다. 굳이 복잡하게 머리를 꺾으면 꼬리를 가만히 있어야 되고... 이러쿵저러쿵하기보다 간단하게! 큐를 써서 추가될 때마다 큐에 집어넣어 준다면 꼬리는 당연하게도 큐의 가장 앞에 위치하게 될 것이다. 맞쥬? 1. 내가 가게 될 다음칸에 사과가 있으면 다음 위치를 큐에 추가해 주고 2. 만약 빈칸이라면 큐에서 꼬리를 pop() 해주고 다음..
2023.05.30 -
문제 요약 1. N x M 크기의 보드가 있다. 2. 로봇청소기는 동 서 남 북 방향을 바라볼 수 있다. 3. 현재 로봇 청소기가 있는 칸이 청소되어 있지 않다면(즉 Board [i][j] 칸이 0이라면) 청소한다. 4. 동 서 남 북 방향에 인접해 있는 곳에 청소되어 있지 않은 칸이 있다면 a. 바라보는 방향 유지후 후진하고 (3) 번으로 b. 후진했을 때 1이 있다면 작동 중지 5. 동 서 남 북 방향에 인접해 있는 곳에 모두 청소되어 있다면 a. 반시계 방향으로 90도 회전 b. 현재 바라보고 있는 방향을 기준으로 앞쪽 칸이 청소되어 있지 않았다면 그쪽으로 전진 c. (3) 번으로 돌아간다. 아이디어 이번에 시뮬레이션 문제를 설계할 때는 그냥 이렇게 하면 되겠지식으로 설계한 것이 아니라 어떻게 하면..
14503 - c++문제 요약 1. N x M 크기의 보드가 있다. 2. 로봇청소기는 동 서 남 북 방향을 바라볼 수 있다. 3. 현재 로봇 청소기가 있는 칸이 청소되어 있지 않다면(즉 Board [i][j] 칸이 0이라면) 청소한다. 4. 동 서 남 북 방향에 인접해 있는 곳에 청소되어 있지 않은 칸이 있다면 a. 바라보는 방향 유지후 후진하고 (3) 번으로 b. 후진했을 때 1이 있다면 작동 중지 5. 동 서 남 북 방향에 인접해 있는 곳에 모두 청소되어 있다면 a. 반시계 방향으로 90도 회전 b. 현재 바라보고 있는 방향을 기준으로 앞쪽 칸이 청소되어 있지 않았다면 그쪽으로 전진 c. (3) 번으로 돌아간다. 아이디어 이번에 시뮬레이션 문제를 설계할 때는 그냥 이렇게 하면 되겠지식으로 설계한 것이 아니라 어떻게 하면..
2023.05.29 -
문제 이해는 완벽하게 하였으나 구현이 쉽지 않았다.... 요약 1. 다리가 버틸 수 있는 최대 하중을 알고 있으니 어떻게 하면 최소한으로 트럭을 이동할 수 있는가 첫 아이디어 1. 자료구조 큐를 사용하고, 트럭이 다리위에 올라갈 때마다 추가한다. 2. 트럭이 다리위에서 나가면 총 무게 - 큐.front() 를 빼주는 식으로 무게를 계산하려 했다. 코드 int n, w, l; int total = 0, cur = 0; int truck[1001]; int cnt = 0; queue bridge; int main() { init(); cin >> n >> w >> l; for(int i =0; i > truck[i]; while(cur != n){//문제점 for(int i=0; i..
13335 - c++문제 이해는 완벽하게 하였으나 구현이 쉽지 않았다.... 요약 1. 다리가 버틸 수 있는 최대 하중을 알고 있으니 어떻게 하면 최소한으로 트럭을 이동할 수 있는가 첫 아이디어 1. 자료구조 큐를 사용하고, 트럭이 다리위에 올라갈 때마다 추가한다. 2. 트럭이 다리위에서 나가면 총 무게 - 큐.front() 를 빼주는 식으로 무게를 계산하려 했다. 코드 int n, w, l; int total = 0, cur = 0; int truck[1001]; int cnt = 0; queue bridge; int main() { init(); cin >> n >> w >> l; for(int i =0; i > truck[i]; while(cur != n){//문제점 for(int i=0; i..
2023.05.29 -
요약 1. 노트북 뒷면에 스티커를 붙일 거다 2. 스티커를 붙일 때 왼쪽 가장 위에 붙일 수 있다면 바로 붙인다. 3. 안되면 스티커를 90도씩 돌려가면서 계속 붙여본다. 4. 그래도 안되면 그 스티커는 버린다. 5. 마지막에 스티커를 붙인 총넓이를 구한다. 아이디어 1. 스티커를 붙일 수 있는지 한 번씩 모든 좌표에서 확인해봐야 한다. 노트북 배열을 돌면서 로직을 구성한다. 2. 붙일 수 있다면 붙인다. 3. 안되면 스티커를 돌려야 한다. 구현 1. 스티커를 돌리는 함수 void rotate(){ int tmp[12][12]; for(int i =0; i < r; ++i) for(int j =0; j < c; ++j) tmp[i][j] = sticker[i][j]; for(int i =0; i < c;..
백준 18080 - c++요약 1. 노트북 뒷면에 스티커를 붙일 거다 2. 스티커를 붙일 때 왼쪽 가장 위에 붙일 수 있다면 바로 붙인다. 3. 안되면 스티커를 90도씩 돌려가면서 계속 붙여본다. 4. 그래도 안되면 그 스티커는 버린다. 5. 마지막에 스티커를 붙인 총넓이를 구한다. 아이디어 1. 스티커를 붙일 수 있는지 한 번씩 모든 좌표에서 확인해봐야 한다. 노트북 배열을 돌면서 로직을 구성한다. 2. 붙일 수 있다면 붙인다. 3. 안되면 스티커를 돌려야 한다. 구현 1. 스티커를 돌리는 함수 void rotate(){ int tmp[12][12]; for(int i =0; i < r; ++i) for(int j =0; j < c; ++j) tmp[i][j] = sticker[i][j]; for(int i =0; i < c;..
2023.05.28 -
DATE, TIME CURDATE, CURTIME, NOW SELECT CURDATE(), CURTIME(), NOW() -- > CURDATE 현재 날짜 반환 -- > CURTIME 현재 시간 반환 -- > NOW 현재 날짜, 시간 반환 DATE, TIME SELECT "2022-6-25" = "2022-06-25", DATE("2022-6-25") = DATE("2022-06-25"), "4:6:05" = "04:06:05" TIME("4:6:05") = TIME("04:06:05") -- > 0 -- > 1 -- > 0 -- > 1 -- > DATE, TIME 문자열로 날짜/시간 생성 YEAR, MONTHNAME, MONTH, WEEKDAY, DAYNAME, DAY SELECT YEAR("2022-..
[SQL] DATE, TIMEDATE, TIME CURDATE, CURTIME, NOW SELECT CURDATE(), CURTIME(), NOW() -- > CURDATE 현재 날짜 반환 -- > CURTIME 현재 시간 반환 -- > NOW 현재 날짜, 시간 반환 DATE, TIME SELECT "2022-6-25" = "2022-06-25", DATE("2022-6-25") = DATE("2022-06-25"), "4:6:05" = "04:06:05" TIME("4:6:05") = TIME("04:06:05") -- > 0 -- > 1 -- > 0 -- > 1 -- > DATE, TIME 문자열로 날짜/시간 생성 YEAR, MONTHNAME, MONTH, WEEKDAY, DAYNAME, DAY SELECT YEAR("2022-..
2022.10.25 -
STRING METHOD CONCAT, CONCAT_WS SELECT CONCAT("HELLO", "WORLD", "TOM"), CONCAT_WS("/", "HELLO", "WORLD", "TOM"); -- > CONCAT HELLOWORLDTOM -- > CONCAT_WS HELLO/WORLD/TOM UPPER, LOWER SELECT UPPER("hello"), LOWER("FINE"); -- > UPPER HELLO -- > LOWER fine TRIM, LTRIM, RTRIM SELECT CONCAT("|", TRIM(" hello "), "|"), CONCAT("|", LTRIM(" hello "), "|"), CONCAT("|", RTRIM(" hello "), "|"); -- > TRIM |..
[SQL] STRING_METHODSTRING METHOD CONCAT, CONCAT_WS SELECT CONCAT("HELLO", "WORLD", "TOM"), CONCAT_WS("/", "HELLO", "WORLD", "TOM"); -- > CONCAT HELLOWORLDTOM -- > CONCAT_WS HELLO/WORLD/TOM UPPER, LOWER SELECT UPPER("hello"), LOWER("FINE"); -- > UPPER HELLO -- > LOWER fine TRIM, LTRIM, RTRIM SELECT CONCAT("|", TRIM(" hello "), "|"), CONCAT("|", LTRIM(" hello "), "|"), CONCAT("|", RTRIM(" hello "), "|"); -- > TRIM |..
2022.10.25