알고리즘/BOJ 1235

백준 1758번 알바생 강호

문제 링크입니다: https://www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 팁을 내림차순으로 정렬한 뒤, 차례차례 순서를 부여해주면 되는 문제였습니다. 오버플로우 방지를 위해 결과를 long long으로 선언하고, 음수일 때는 0만 더하게 해야하는 점을 고려해야했던 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2019.11.08

백준 1439번 뒤집기

문제 링크입니다: https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 예를 들어 S=0001100 일 때, 전체를 뒤집으면 1110011이 된다. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 2번 만에 모두 같은 숫자로 만들 수 있 www.acmicpc.net 연속된 0을 뒤집는 경우와 연속된 1을 뒤집는 경우 모두 구하여 최소인 쪽을 출력을 해주면 되는 문제였습니다. 코드가 중..

알고리즘/BOJ 2019.11.08

백준 1041번 주사위

문제 링크입니다: https://www.acmicpc.net/problem/1041 1041번: 주사위 첫째 줄에 N이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수가 주어진다. 위의 그림에서 A, B, C, D, E, F에 쓰여 있는 수가 차례대로 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, 쓰여 있는 수는 50보다 작거나 같은 자연수이다. www.acmicpc.net 이 문제를 보고 저는 우선 규칙을 찾아봤습니다. 규칙을 찾는 과정은 아래와 같습니다. N = 1인 경우: 1 ~ 5면 다 보임 (예외) N = 2인 경우: 3면 보이는 블록 4개, 2면 보이는 블록 4개 N = 3인 경우: 3면 보이는 블록 4개, 2면 보이는 블록 (8 + 4)개, 1면 보이는 블록 (1 + 8)개 N ..

알고리즘/BOJ 2019.11.08

백준 2812번 크게 만들기

문제 링크입니다: https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 문제 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N ≤ 500,000) 둘째 줄에 N자리 숫자가 주어진다. 이 수는 0으로 시작하지 않는다. 출력 입력으로 주어진 숫자에서 K개를 지웠을 때 얻을 수 있는 가장 큰 수를 출력한다. 예제 입력 1 복사 4 2 1924 예제 출력 1 복사 94... www.acmicpc.net 수학적으로 생각해야하는 문제였습니다. 숫자의 배치는 임의로 조정할 수 없으므로 덱을 사용하여 현재 추가할 숫자가 그 전 숫자보다 작을 때까지 pop_bac..

알고리즘/BOJ 2019.11.08

백준 17829번 222-풀링

문제 링크입니다: https://www.acmicpc.net/problem/17829 17829번: 222-풀링 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 222-풀링이라 부르기로 했다. 다음은 8×8 행렬이 주어졌다고 가정했을 때 222-풀링을 1회 적용하는 과정을 설명한 것이다 행렬을 2×2 정사각형으로 나눈다. 각 정사각형에서 2번째로 큰 수만 남긴다. 여기서 2번째로 큰 수란, 정사 www.acmicpc.net 단순 구현 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주..

알고리즘/BOJ 2019.11.04

백준 17828번 문자열 화폐

문제 링크입니다: https://www.acmicpc.net/problem/17828 17828번: 문자열 화폐 첫 번째 줄에 문자열의 길이 N(1 ≤ N ≤ 5,000,000)과, 문자열의 가치를 나타내는 정수 X(1 ≤ X ≤ 500,000,000)가 공백으로 구분되어 주어진다. www.acmicpc.net 이 문제는 우선 예외처리를 하는 것이 중요합니다. 예외처리를 해야할 경우는 아래와 같이 두 경우입니다. 1. X가 N보다 작을 경우 2. N 길이의 문자열을 모두 Z로 채워도 X 미만일 경우 메인 로직은 아래와 같습니다. 1. 문자열을 모두 A로 채운 상태에서 2. 사전 순으로 정렬했을 때 맨 앞 문자열을 출력해야하므로 끝에서부터 min(현재 남은 점수, 25)를 계산한 뒤 해당 문자에 더해줍니다..

알고리즘/BOJ 2019.11.04

백준 17827번 달팽이 리스트

문제 링크입니다: https://www.acmicpc.net/problem/17827 17827번: 달팽이 리스트 첫째 줄에 노드의 개수 N(2 ≤ N ≤ 200,000), 질문의 횟수 M(1 ≤ M ≤ 200,000), N번 노드가 가리키는 노드의 번호 V(2 ≤ V ≤ N)가 공백으로 구분되어 주어진다. 둘째 줄에 N개의 정수 C1, C2, …, CN이 공백으로 구분되어 주어진다. 이때 Ci는 i번 노드에 저장된 값을 뜻한다. (1 ≤ Ci ≤ 1,000,000) 셋째 줄부터 M개의 줄에 걸쳐 각 질문에 해당하는 K(1 ≤ K ≤ 109)가 주어진다. www.acmicpc.net 배열의 크기가 최대 200,000이고 쿼리 개수가 최대 1,000,000,000개이기 때문에 브루트포스로는 접근할 수 없는..

알고리즘/BOJ 2019.11.04