본문 바로가기

전체 글454

백준 1302 c++ "베스트셀러" -PlusUltraCode- https://www.acmicpc.net/problem/1302[필자 사고]일단 입력의 이름의 갯수를 카운트해야 되므로 필자는 map자료 구조를 이용하여 정리했다. 그 후 정렬 조건은 map내용들을 vector로 옮겨서 정렬 조건에 맞게 정렬했다. 아래는 자세한 코드 해설이다.[코드 해설]cmp 함수정렬 기준을 정의하는 비교 함수입니다.if (a.second != b.second) return a.second > b.second;등장 횟수(value)가 다르면 더 큰 횟수를 먼저 오도록 정렬 (내림차순).return a.first 등장 횟수가 같으면 문자열(key) 사전순으로 정렬 (오름차순).Input 함수입력을 처리합니다.cin >> N; → 문자열의 개수 입력.for문으로 N번 반복하며 문자열 .. 2025. 9. 17.
백준 1244 c++ "스위치 켜고 끄기" -PlusUltraCode- https://www.acmicpc.net/problem/1244[필자 사고]구현 문제다.남자 와 여자를 구분해서 구현해야 되는 문제인데 문제에서 주어진 대로 조건에 맞게 구현하면 이상 없이 해결할 수 있다. 다만 경계값을 조심해야 된다??아래는 자세한 코드 해설이다.[코드 해설]Input 함수스위치 개수와 초기 상태를 입력받습니다.cin >> N; → 스위치의 총 개수를 입력받음.switches.assign(N + 1, 0); → 인덱스를 1부터 쓰기 위해 크기를 N+1로 지정.for (int i = 1; i > switches[i]; → 1번부터 N번까지 스위치 상태 입력.turnButton 함수특정 스위치 상태를 반대로 바꿉니다.켜져 있으면(1) 끄고(0), 꺼져 있으면(0) 켭니다(1).int& .. 2025. 9. 17.
백준 10825 c++ "국영수" -PlusUltraCode- https://www.acmicpc.net/problem/10825[필자 사고]문제에서 주어진 조건에 맞게 정렬 함수를 만들면 된다. 필자는 cmp형태로 Node자료형들을 if문을 이용하여 정렬에 사용했따. 아래는 자세한 코드 해설이다.[코드 해설]struct Node학생 한 명의 정보를 담는 구조체입니다.필드:int korea; → 국어 점수int english; → 영어 점수int math; → 수학 점수string name; → 학생 이름cmp 함수 (정렬 기준 함수)두 학생 a, b를 비교하여 정렬 순서를 결정합니다.조건은 다음과 같습니다:모든 점수가 같으면 → 이름 사전순 오름차순.국어와 영어 점수가 같으면 → 수학 점수 내림차순.국어 점수가 같으면 → 영어 점수 오름차순.그 외 → 국어 점수 .. 2025. 9. 17.
백준 11656 c++ "접미사 배열" -PlusUltraCode- https://www.acmicpc.net/problem/11656 [필자 사고]간단하게 string 을 이용하여 앞부분 문자열을 지우고 우선순위 큐에 넣어 문제를 해결했다. 아래는 자세한 코드 해설이다.[코드 해설]main 함수프로그램 전체를 실행하는 유일한 함수입니다.입출력 최적화ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);빠른 입출력 처리를 위해 설정합니다.문자열 입력string str; cin >> str;하나의 문자열을 입력받습니다.우선순위 큐 선언priority_queue, greater> pq;문자열들을 저장할 우선순위 큐를 선언합니다.greater을 사용했기 때문에, 사전순으로 가장 작은 문자열이 top()에 오도록 합니다.모든 접미사 생성.. 2025. 9. 17.