전체 글

취뽀완료
백준 문제풀이/브론즈1

백준 2839번 - 설탕 배달

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 나의 사고과정) 5kg짜리 갯수와 3kg짜리 갯수의 한계치는 입력 받은 값에서 가장 작은 무게인 3kg짜리를 나눈 값이다.(왜냐하면 3kg짜리만 계속하면 그게 가장 봉지 갯수가 크니까) 그래서 이걸 max 값으로 한 다음 반복문으로 가능한 조합을 다 vector에 넣고 가장 작은 값을 출력하게 했다. 수식에 해당하는 문제인데 난 수식이라기 보단... #include #include #include using..

백준 문제풀이/브론즈2

백준 2292번 - 벌집

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 우선 나의 사고는 이랬다. 해당 수를 입력받고 현재 1, 2, 8 , 20이 경계이므로 해당 수 보다 커질 시점에 해당 인덱스를 출력시키면 되었다. #include #include using namespace std; int main() { std::cin.tie(NULL); std::ios::sync_with_stdio(false); int n; cin >> n; int limit = (int)10000..

백준 문제풀이/브론즈2

백준 10809번 - 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net #include #include #include using namespace std; int main() { std::cin.tie(NULL); std::ios::sync_with_stdio(false); string input; cin >> input; vector v(26, -1); for (int i = 0; i < input.length(); i++) { int index = ..

백준 문제풀이/실버5

백준 4673번 - 셀프 넘버

https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 사고과정) 우선 d(n)을 만드는 과정의 함수를 구현해야한다. 이건 n + n의 각 자리를 더하면 되니 간단함. 문제는 해당 조건에 맞는 셀프넘버를 출력시킬 것인가이다. 생각했던 방법은, d(n)을 n이 1부터 쭉 반복한다. 그러면서 d(n)이 10000이하까지일때까지 반복하면서 해당 d(n)의 값과 대응하는 인덱스의 배열에 값이 있다는 뜻의 '1..

백준 문제풀이/실버5

백준 1789번 - 수들의 합

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 자연수 N이 최대려면, 1+2+3+.... 이렇게 가장 작은 수부터 시작해서 더해야한다. 예제가 19여서 생각을 해보니, 1+2+3+....19가 190이다. 저 19를 200에 맞추기 위해 29로 바꿔주면 끝이다. 즉, 이렇게 더하나가다가 N보다 커지면 마지막 수만 바꿔주면 된다. #include using namespace std; int main() { long long S; cin >> S; long long sum = 0; int count = 0; long long i = 1; while (true) {..

백준 문제풀이/실버5

백준 1316번 - 그룹 단어 체커

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 사고과정) abca 가 있다고 하면, a의 경우 아까 나왔는데 마지막에 또 나와버려서 그룹단어가 아님 그걸 활용해, 알파벳 수를 담는 배열을 만들고, 한글자씩 옆에랑 서로 비교하면서 다르면 글자수를 더하고 그러다가 글자수가 2 이상이면 중복되었다는 소리이므로 그룹단어가 아님. 문자열을 입력받고 (str[i] != str[i+1]) 이런 식으로 비교를 할텐데, 그렇게..

C++(따라하며 배우는 C++)

Chapter 14-(2). 예외 처리

스택이 쌓이는 과정을 생각하면 이해 하기 쉽다. 결과값 보면서 이해하면 됨. 핵심은, 스택에 쌓인 것을 되돌아간다는 것. ... 은 전에 eclipse, 전체 해당 하는 케이스다.

C++(따라하며 배우는 C++)

chapter 14 - 1. 예외처리의 기본

본 포스팅은 인프런사이트(www.inflearn.com)의 "홍정모의 따라하며 배우는 C++" 유로강의를 자비로 구매해 복습하기 위한 용도로 올리는 포스트입니다. 해당 코드나 사진의 모든 저작권은 강의 제작자인 홍정모 교수님에게 있습니다. 흔히 우리가 오류인 상황? 예외인 상황을 return -1로 표현을 한다거나, Flag 역할을 하는 bool 타입의 변수를 하나 선언해서 인자로 전달하는 경우를 많이 사용하게 된다. 정통적인 C++ 스타일의 코드이며, 실제로 많이 사용되는 코드이다. 예외 처리가 주로 사용되는 경우는 '예측할 수 없는 일이 많이 벌어지는 경우' 이다. 네트워크 환경이라던가, 게임을 사용하는 유저가 갑작스런 돌발행동이 일어난다거나 등 우리가 예측하기 힘든 경우를 예외처리하고, 작업을 지속..

void_melody
성수의 프로그래밍 극복 기록