본문 바로가기

Programming/C++ - 백준63

[백준] 10825번 : 국영수 (C++) 문제 풀이 vector에 구조체를 넣어 풀이했다. 아래는 array에 구조체를 넣어 풀이한 문제이다. 또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽어보시는걸 추천한다! 👍👍 [백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare & Array와 Vector 풀이 (C++) 문제 풀이 '이차원 벡터'와 '이차원 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for jigoo-log.tistory.com 1. vector를 선언하기 위한 구조체(struct) 생성 struct score .. 2024. 3. 14.
[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare & Array와 Vector 풀이 (C++) 문제 풀이 '이차원 벡터'와 '구조체를 이용한 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for (int i = 0; i > x >> y; // 첫 번째 - 이차원 벡터 입력 방법 v.push_back({x, y}); // 두 번째 - 이차원 벡터 입력 방법 v.push_back(make_pair(x, y)); } 3. 오름차순 정렬 // 사용자 지정 compare 생략 - 오름차순 정렬이기 때문에 가능 sort(v.begin(), v.end()); // 오름차순 sort(v.begin(), v.end(), less()); // 오름차순 /.. 2024. 3. 14.
[백준] 11931번 : 수 정렬하기 4 (C++) 문제 풀이 sort함수를 사용할 때, greater 내림차순 less 오름차순 잊지말도록! #include // sort함수를 사용하기 위한 헤더 파일 sort(v.begin(), v.end(), compare); sort(v.begin(), v.end(), greater()); // 내림차순 sort(v.begin(), v.end(), less()); // 오름차순 아래는 정렬 시 시간복잡도에 대해서 자세하게 적어두었다. 이 문제에 대한 코드 설명도 있으니 꼭 읽어보시기를 추천드린다! 👍👍 아래의 글을 두 줄 요약하자면, sort함수는 퀵정렬을 이용해서 시간복잡도가 O(nlogn)으로 더 효율적이고 빠르다. 만약, 이중 for문을 이용해 정렬을 구현하면 시간복잡도는 O(n2) 으로 상대적으로 느리고, .. 2024. 3. 13.
[백준] 11866번 : 요세푸스 문제 0 (C++) 문제 풀이 요세푸스 문제는 큐(Queue)를 이용해 풀이할 수 있다. queue를 사용하기 위한 헤더 파일을 추가한다. 큐에 1부터 n까지의 원소를 넣는다. #include // queue를 이용하기 위한 헤더 파일 int n, k; queue q; // queue 선언 cin >> n >> k; for (int i = 1; i n >> k; for (int i = 1; i 2024. 3. 13.
[백준] 10845번 : 큐 (C++) 문제 풀이 큐(Queue)은 FIFO(Last In First Out, 후입선출) 구조이다. 큐를 구현하기 위해 std::queue를 사용할 수 있다. 스택과 비슷한 형태의 함수를 지원하지만, 의미와 동작은 다르게 정의되어 있다. [백준] 10828번 : 스택 (C++) 문제 풀이 스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다. 스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다. 따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거 jigoo-log.tistory.com 예를 들어, std::queue에서 pop()은 pop_front()를 의미한다. 만약, 단순히 양 끝에 있는 원소에 접근하고 싶다면 front(), back() 함수를 사용하면 .. 2024. 3. 11.
[백준] 10828번 : 스택 (C++) 문제 풀이 스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다. 스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다. 따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거나 변경할 수 없다. 스택을 구현하기 위해 std::deque 와 std::stack을 사용할 수 있고, 풀이에 후자를 사용했다. // std::deque를 사용해 stack 구현 #include std::deque stk1; stk1.push_back(1); stk1.push_back(2); stk1.pop_back(); // std::stack를 사용해 stack 구현 #include std::stack stk2; stk2.push(1); stk2.push(2); stk2.pop();.. 2024. 3. 11.
[백준] 2798번 : 블랙잭 (C++) 문제 풀이 이 문제를 풀기 위해 브루트포스(Brute-force Search)를 사용했다. 브루트포스는 '무식한 힘'이라는 뜻으로, 완전 탐색 알고리즘을 이용한다. 즉, 모든 경우의 수를 파악해 답을 도출하는 방식이다. 아래처럼 삼중 for문을 이용해 결과를 도출했다. for (int i = 0; i N >> M; for (int i = 0; i > arr[i]; } for (int i = 0; i < N - 2; i++).. 2024. 3. 10.
[백준] 2869번 : 달팽이는 올라가고 싶다 (C++) 문제 풀이 이 문제를 풀면서 참 많은 고난이 있었다.. 세 번째 풀이만에 성공했고.. 문제를 풀면서 화난 치와와가 된 기분을 느꼈다.. 첫 번째 코드 - 실패 ➡ 시간복잡도: O(n), while문 사용 처음에는 단순하게 A만큼 증가하고, B만큼 감소하는 while문을 만들어 높이 변수 height가 V에 도달하면 break 되도록 했다. 하지만, 시간 초과가 발생했다. //첫 번째 시도_ O(n), 시간초과 #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int A, B, V, height = 0, day = 0; cin >> A >> B >> V; w.. 2024. 3. 7.
[백준] 5597번 : 과제 안 내신 분..? (C++) 문제 풀이 array의 원소를 모두 0으로 초기화한 후, for문과 arr[입력된 숫자]를 1로 저장했다. 결론적으로, arr[i] == 0이라면 출력되게 하였다. array를 모두 0으로 초기화하려면, int arr[31] = { 0, };// array를 모두 0으로 초기화 만약, array를 0이 아닌 다른 수로 초기화하기 위해서는 헤더 파일에 포함되어 있는 fill 또는 fill_n 함수를 사용하면 된다. fill(변경하려는 원소의 범위 시작주소, 종료주소, 변경 값) fill_n(변경하려는 원소의 범위 시작주소, 원소의 개수, 변경 값) std::fill(arr, arr + 31, -1)// fill(변경하려는 원소의 범위 시작주소, 종료주소, 변경 값) std::fill_n(arr, 31, -.. 2024. 3. 5.
반응형