목록전체 글 (60)
근본없는 코딩
#include using namespace std; int main() { char str[101]; int i; cin >> str; for (i = 0; i < 100; i++) { if (str[i] == '\0') break; } cout
#include using namespace std; int main() { char str[1001]; int i; cin >> str; cin >> i; cout
✔️ HTTP란? . Hyper Text Transfer Protocol의 준말로, 하이퍼 미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜 . 하이퍼 미디어 문서? 웹상에서 돌아다니는 정보들 . Application 레이어는 최상층에 위치하고 있다. . 따라서 데이터를 주고 받기 위해서는, 아래의 하위 계층들을 다 지나갔다 와야한다. ➕ TCP vs. UDP . TCP는 연결형 → 데이터를 주고 받기 전 연결을 확인하는 과정을 거친다(3 Way-Handshake). . UDP는 비연결형 → 일단 데이터 보내고 받았으면 오케이! ✔️ HTTP 1.1 . 전송 계층 프로토콜 TCP를 사용 . http1.0의 문제를 해결하기 위해 출시 . http2.0의 출시 전까지 약 15년간 주로 사용됨 ⚠️ H..
#include using namespace std; using ll = long long;// 정수 범위 밖이므로 long long 타입을 사용한다. int N, M, K; ll arr[1000001]{}; ll seg[2097153]{}; void init(int s, int e, int n) { // start 와 end 의 위치가 일치하면 input[start] 값을 넣어준다. if (s == e) { seg[n] = arr[s]; return; } int m = (s + e) >> 1; init(s, m, n * 2);init(m + 1, e, n * 2 + 1); seg[n] = seg[n * 2] + seg[n * 2 + 1]; } // start, end, 찾아야하는 곳(index), 바뀐..
01. Segment Tree(세그먼트 트리, 구간 트리) 란? . 결과적으로 보면, 배열과 연산이 주어졌을 때 Binary Tree(이진트리)의 구조를 이용해서, 연속적인 배열의 부분을 연산했을 때의 정보를 미리 저장해놓고 빠르게 구하는 방법이다. 예를 들면, 배열에 아래와 같이 arr = [0, 1, 2, 3, 4, 5, 6, 7] 이 들어있다고 가정해보자. arr[3]~arr[5]의 합을 구하라 한다면, arr[3]+arr[4]+arr[5]를 구하게 될 것이다. index 0 1 2 3 4 5 6 7 arr 0 1 2 3 4 5 6 7 합을 구한 뒤, arr[4]가 10으로 변경되어 arr=[0,1,2,3,10,5,6,7]이 된 경우, 다시 arr[3]+arr[4]+arr[5]를 구하라고 한다면..
#include using namespace std; int main() { double n, m=0, s=0; int score[1000] = { 0 }; cin >> n; for (int i = 0; i > score[i]; if (score[i] > m) m = score[i]; } for (int i = 0; i < n; i++) { s += ((double)score[i] / m * 100); } cout.precision(9); cout
#include using namespace std; int main() { int arr[101]; int m, n, x, y, tmp; for (int i = 1; i > n >> m; for (int i = 0; i > x >> y; for (int j = 0; j < (y-x + 1)/2; j++) { tmp = arr[x+j]; arr[x+j] = arr[y-j]; arr[y-j] = tmp; } } for (int i = 1; i
#include using namespace std; int main() { int arr[42] = { 0 }; int n, res = 0; for (int i = 0; i > n; if (arr[n % 42] == 0) res++, arr[n % 42] = 1; } cout
#include using namespace std; int main() { int student[31] = { 0 }, n; for (int i = 1; i > n; student[n] = 1; } for (int i = 1; i
#include using namespace std; int main() { int n, m; int arr[101] = { 0 }; int b1, b2, tmp; cin >> n >> m; for (int i = 1; i > b1 >> b2; tmp = arr[b1]; arr[b1] = arr[b2]; arr[b2] = tmp; } for (int x = 1; x
#include using namespace std; int main() { int n, m; int arr[100] = { 0 }; int i, j, k; cin >> n >> m; for (int x = 0; x > i >> j >> k; for (int y = i-1; y < j; y++) { arr[y] = k; } } for (int x = 0; x < n; x++) { cout
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, max=0, tmp; for (int i = 0; i > tmp; if (tmp > max) max = tmp, n = i+1; } cout
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, tmp, min=1000000, max=-1000000; cin >> n; for (int i = 0; i > tmp; if (tmp max) max = tmp; } cout
// 풀이 1 #include using namespace std; int main() { int n, x, tmp, cnt=0; int arr[10000]; cin >> n >> x; for (int i = 0; i > tmp; if (tmp > x; for (int i = 0; i > tmp; if (tmp < x) cout
#include using namespace std; int main() { int n, v, res = 0; int arr[101]; cin >> n; for (int i = 0; i > arr[i]; } cin >> v; for (int i = 0; i < n; i++) { if (arr[i] == v) res++; } cout
안녕하세요. 금요일이라 그런지, 피곤하네요... 그래도 금요일이니 오늘치 얼른 풀고 게임하러 가려고 합니다!! 언제까지 쉬운 문제가 나올지 모르겠네요. 일단 아직까지는 너무 난이도가 낮아서 그냥 손가락 연습 정도...! 곧 막혀서 1일 1문제도 못하는 날이 오겠죠 ㅠㅠ 난이도 높은 문제도 1일1문제 할 수있는 날이 올 때까지 파이팅...! #백준2739 구구단 #include using namespace std; int main() { int n; cin >> n; for (int i = 1; i n; for (int i = 0; i > a >> b; res = res + a * b;..
안녕하세요. 오늘은 백준 2단계 조건문을 완료했습니다. 사실 코드 짤 때 조건문 자체는 너무 쉽지만, 이 조건문을 최대한 간단하게 표현하고 싶은데 그게 가장 어려운 듯 합니다. 코테만 아니라면 사실 그냥 생각나는 경우의 수 전부 분기타버리면 편하니까요... 사실 조건문에서 수학의 중요성이 가장 많이 나오는걸지도...ㅎㅎ #백준1330 두 수 비교하기 #include using namespace std; int main() { int a, b; cin >> a >> b; if (a > b) cout use_m; if (bef_m + use_m % 60 >= 60) { aft_h = (bef_h + use_m / 60 + 1) % 24; //1 aft_m = bef_m + use_m % 60 - 60..
저녁에 회식하고 와서 자기 전에 손풀겸 1단계를 시작했습니다. 굳어있던 손가락도 풀 겸해서 해봤는데, 쉬운거 푸니까 기분이 너무 좋네요 ㅎㅎ.. 모든 문제가 이와 같으면 참 좋으련만... #백준2557 Hello World #include int main() { printf("Hello World!"); return 0; } #백준1000 A+B #include using namespace std; int main() { int a, b; cin >> a >> b; cout > a >> b; cout > a >> b; cout > a >> b; cout.precision(9); cout b; cout
6년전 쯤엔가, 취업준비한다고 코딩테스트 준비했을 때 한 번. 5년전 쯤엔가, S/W Certi. Pro 자격 준비한다고 한 번. 그 뒤로 너무 손 놓았던 알고리즘 공부. 정말 하나도 기억이 나질 않아서, 어디서부터 공부해야할 지 너무 막막한 상태인데... 우선은, "백준 온라인 저지(BOJ)로 처음 알고리즘 시작해서 공부했던 방법 공유" 유튜브 영상을 보고 따라 시작해보려고 합니다. 아 요즘도 백준 많이 푸나요...? 제가 6년전 코테 준비한다고 잠깐 알고리즘 공부했을 때, 애용하던 사이트였는데...ㅋㅋ 1. 백준에서 알고리즘 > 문제 > 단계별로 풀어보기 우선 백준 사이트를 들어갑니다. Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채..
* Array 기본 ✔️ Array(배열) 이란? 일정한 자료형의 변수들을 하나의 이름으로 열거하여 사용하는 자료구조 ✔️ 1차원 Array의 선언 . 자료형: Array을 이루는 원소(변수)의 자료형 . 이름: 프로그램에서 사용할 Array의 이름 . 길이: Array을 이루는 원소의 ✔️ 1차원 Array의 접근 . 인덱스: 원소의 위치 // Array Arr의 0번째 원소에 10을 저장하라 Arr[0] = 10; // Array Arr의 idx+1번째 원소에 20을 저장하라 Arr[idx] = 20; * Exhaustive Search 완전 검색 ✔️ 완전검색? 문제의 해법으로 생각할 수 있는 모든 경우의 수를 나열해보고 확인하는 기법 ✔️ 특징 ① Brute-force 혹은 G..