전체 글 51

[C++] 코딩할때 '\b' 문자에 관하여

https://www.acmicpc.net/problem/5430백준 5430: AC 문제를 풀고 있었다. 이 문제는 어떤 deque 배열이 {1,2,3,4} 이런 식으로 있으면 답을 [1,2,3,4] 형태로 출력해야 하는 문제다. cout 나는 이런 식으로 출력을 했다.즉, 먼저 '['를 출력 후 deque 속 모든 값에 대해 그 값과 이어서 ','를 출력한다. 그 후 ']'를 출력한다.그럼 이런 식으로 될 것이다.[1,2,3,4,]마지막 값 이후에 필요없는 ','이 하나 추가된 것이다.그래서 나는 "한 칸 뒤로가기" 문자인 '\b'로 그 쉼표를 지우려 한 것이다. 그러면 출력 시 정상적으로[1,2,3,4]로 출력이 된다. 다만, 이걸 백준에 그대로 제출하면 틀렸다고 나온다.정확한 원리는 모르지만..

공부/코딩 2024.12.15

백준 31778: PPC 만들기

https://www.acmicpc.net/problem/31778  포닉스에게는 아끼던 문자열 S가 있다. S는 길이가 N이며 알파벳 대문자 C와 P만으로 이루어져 있는 문자열이다. 문자열 S의 i번째 문자는 S_i이 나타낸다.포닉스는 PPC에 참가하는 팀들을 위해 문자열 S 대회장을 장식하려 한다. 포닉스는 대회 전, S에 다음과 같은 연산을 최대 K번 시행할 수 있다. 1≤i포닉스의 목표는 완성된 문자열 S에 PPC 부분문자열이 가장 많게 하는 것이다. PPC 부분문자열의 개수란, 1≤i포닉스가 만들 수 있는 PPC 부분문자열의 개수의 최댓값을 구하여라. 문제는 두 단계로 나눌 수 있다.1단계는 PPC 부분문자열의 개수가 최대가 되도록 연산을 K번 수행해 문자열 S를 완성시키는 것이다.2단계는 완성..

problem solving 2024.12.08

백준 23032: 서프라이즈~

https://www.acmicpc.net/problem/23032 더보기서프라이즈! 다음과 같은 조건을 만족하는 학생들에게 스테이크를 드려요!1. 임의로 연속된 학번의 학생들을 정해요!2. 임의로 대상 학생들을 두 그룹으로 나눠요! 대신 한 그룹의 학생들은 학번이 인접해야 해요! 그룹에는 최소 한명의 학생이 있어야 해요!3. 두 그룹의 스테이크 무게 합의 차 E를 구해요! E를 계산할 때는 합이 큰 그룹에서 작은 그룹의 합을 빼요!4. 가능한 모든 경우에 대해 계산하여 E가 최솟값인 두 그룹의 학생들에게 스테이크를 드립니다!5. 대신 최솟값이 같은 경우가 여러 가지라면 두 그룹의 스테이크 무게 합이 가장 큰 두 그룹의 학생들에게 스테이크를 드립니다!예를 들면, 1번~6번 학생에 대한 설문 조사 결과가 ..

problem solving 2024.11.17

게일 섀플리 알고리즘(Gale–Shapley algorithm)

수학이 필요한 순간우리가 익숙하게 사용하는 연산, 매일 이야기하는 확률, 쉽게 그리는 좌표 등도 한때는 전문가들조차 이해할 수 없는 복잡한 이론이었다. 페르마, 뉴턴, 아인슈타인은 물론, 지금 잘 알지 못하는www.aladin.co.kr 김민형 작가가 쓴 수학이 필요한 순간을 읽고 있다. 본문 5장에 소개되는 알고리즘으로, 게일 섀플리 알고리즘이라는 것이 있다. 남자 n명과 여자 n명이 소개팅을 할 때, 짝을 지어주는 최적의 방법을 찾아주는 알고리즘이다. 그러기 위해서는 각 남자가 어떤 여자를 좋아하는 지 순위를 매긴 정보가 필요하다. 이를 테면 n이 4일 때 1번 남자는 1번 여자-4번 여자-3번여자-2번여자 순서대로 좋다는 정보를 말한다. 그리고 반대로 각 여자가 남자들의 순위를 매긴 정보도 필요하다..

공부/코딩 2024.11.10

C++과 Java에서 Priority Queue의 차이점

C++에서는 #include 를 해주고 Java에서는 import java.util.PriorityQueue; 를 해주어 Priority Queue(우선순위 큐) 자료구조를 사용할 수 있게 해준다. 1. Priority Queue 선언 C++: priority_queue pq_int; priority_queue pq pq_ll; 이와 같이 priority_queue으로 선언할 수 있다. Java: PriorityQueue pq = new PriorityQueue(); 자바에서는 new 뒤까지 써주어야 한다. 2. 우선 순위 C++에서는 기본적으로 Priority Queue가 큰 값을 우선순위로 두지만 Java는 작은 값을 우선순위로 둔다. 예를 들어 1, 3, 5, 7이 Priority Queue 안에 ..

공부/코딩 2023.10.19