백준 15

백준 2870번 수학숙제

문제 링크입니다: https://www.acmicpc.net/problem/2870 2870번: 수학숙제 종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차 www.acmicpc.net 간단한 문자열 처리 문제였습니다. 주의할 점은 숫자가 최대 100자리 즉, long long 자료형으로도 커버 안 되는 숫자가 주어질 수 있기 때문에 문자열을 통해 숫자 비교하는 정렬 메서드를 직접 구현해야 합니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.03.13

백준 2910번 빈도 정렬

문제 링크입니다: https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net map의 특성을 이용하여 visited 배열과 같이 사용하면 메모리 초과가 발생하지 않고 쉽게 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.03.13

백준 4659번 비밀번호 발음하기

문제 링크입니다: https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 문제에서 주어진 조건대로 구현하면 되는 간단한 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.03.13

백준 25596번 마트료시카 박스 II

문제 링크입니다: https://www.acmicpc.net/problem/25596 25596번: 마트료시카 박스 II 첫 번째 줄에 수정 전 설계도의 박스의 개수 $N$, 수정 후 설계도의 최대 서브 박스 개수 $M$, 추가할 수 있는 박스의 개수 $K$가 공백으로 구분되어 주어진다. $(4 \leq N \leq 1\,000;$ $2 \leq M \leq N - 2;$ $0 www.acmicpc.net 큐 배열을 이용하여 푼 문제였습니다. 알고리즘은 아래와 같습니다. 1. N이 최대 1,000이고 K 또한 최대 1,000이므로 크기가 2,000이 넘는 큐 배열을 선언해줍니다. 2. 주어진 입력을 토대로 1번에서 선언한 큐 배열을 전처리해줍니다. 3. 모든 박스를 순회하며 서브 박스의 개수가 M개 이하..

알고리즘/BOJ 2022.09.22

백준 15235번 Olympiad Pizza

문제 링크입니다: https://www.acmicpc.net/problem/15235 15235번: Olympiad Pizza The contestants that get a slice are, in order: 1, 2, 3, 4, 2, 4, 2, 4, 4. So at t=1s the first contestant get all slices, at t=3s the third contestant gets a slice, at t=7s the second student finishes and finally at t=9s the fourth student gets the last s www.acmicpc.net 간단한 큐 구현 문제였습니다. N의 최댓값이 1,000이기 때문에 단순 구현으로 풀 수 있는 문제..

알고리즘/BOJ 2022.08.04

알고리즘을 풀 때 런타임 에러가 발생하는 이유

알고리즘을 풀다 보면 런타임 에러가 종종 발생합니다. 테스트 케이스에서 런타임 에러가 발생할 경우 어디서 발생하는지 로그를 찍어보며 확인할 수 있지만 시스템 케이스에서 발생한다면 어디서 발생하는지 알 수가 없기 때문에 상당히 답답합니다. 따라서, 이번에는 djm03178님께서 정리해주신 런타임 에러가 발생하는 대표적인 이유 9가지를 알아보겠습니다. 1. 배열에 할당된 크기를 넘어 접근하는 경우 int arr[N]; 예를 들자면 위와 같이 크기가 N인 int형 배열을 선언하였고 반복문을 돌리는데 arr[N]을 접근할 경우 런타임 에러가 발생합니다. 접근할 수 있는 범위는 [0..N) 2. 전역 배열의 크기가 메모리 제한을 초과하는 경우 위 같은 경우는 문제마다 주어진 메모리가 다르기 때문에 유의하셔야 합니..

알고리즘/BOJ 2020.11.05

ios_base::sync_with_stdio(false); cin.tie(null); 구문을 추가해주는 이유

C++로 알고리즘을 풀 때 실행 속도를 높이기 위해 흔히 아래와 같은 구문을 작성해줍니다. ios_base::sync_with_stdio(false); cin.tie(null); 저 같은 경우 단순히 시간초과가 발생했을 때 남들이 위 코드를 작성하면 AC를 받을 수 있다고 하여 지속적으로 작성하고 있었는데, 어느 날 갑자기 원리가 궁금해져 찾아봤는데 내용이 흥미로워 오랜만에 포스팅을 작성합니다. ios_base::sync_with_stdio(false);의 장점 ios_base::sync_with_stdio 구문은 c의 stdio와 cpp의 iostream을 동기화시켜주는 역할을 하는데, 이 때 iostream과 stdio의 버퍼를 모두 사용하기 때문에 딜레이가 발생합니다. 따라서, ios_base::s..

면접 준비 2020.11.03

백준 input 파일을 읽어오는 방법

백준 문제를 풀 때 입력값을 넣는 방법은 크게 두 가지입니다. 1. 예제 입력 옆 [복사] 버튼을 통해 직접 콘솔에 붙여 넣기 2. 파일로부터 입력값을 불러오기 저 같은 경우는 1번 방법을 주로 사용하지만, 메일을 통해 질문 주셨던 분이 2번 방법에 대해 여쭤보셨기 때문에 간단히 방법을 소개드리겠습니다. 우선, input.txt 파일을 현재 실행할 소스코드 파일과 동일한 디렉토리에 넣어줍니다. * 매개변수에서 파일 경로만 맞춰준다면 굳이 동일한 디렉토리일 필요는 없습니다. 질문 주셨던 분이 1931번 문제에 대해 질문 주셨기 때문에 저도 1931번 문제로 예시를 들겠습니다. input.txt 파일로부터 입력값을 불러오는 방법은 간단합니다. freopen 함수를 써주면 되며 예시는 아래와 같습니다. 여기서..

[DEV] 기록 2020.05.16

백준 2239번 스도쿠

문제 링크입니다: https://www.acmicpc.net/problem/2239 2239번: 스도쿠 문제 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다음을 보자. 위 그림은 참 잘도 스도쿠 퍼즐을 푼 경우이다. 각 행에 1부터 9까지의 숫자가 중복 없이 나오고, 각 열에 1부터 9까지의 숫자가 중복 없이 나오고, 각 3×3짜리 사각형(9개이며, 위에서 색깔로 표시되었다)에 1부터 9까지의 숫자가 중 www.acmicpc.net 백준 2580번 스도쿠와 똑같은 문제였습니다.(https://jaimemin.tistory.com/664)

알고리즘/BOJ 2019.04.08