본문 바로가기

소스

백준 알고리즘 1022번. 소용돌이 예쁘게 출력하기 소스 및 해설 빙글 빙글~ 세상은 어지럽지만 그가운데 고요하고 돌지 않는 곳이 있지요. 마치 태풍의 눈처럼 말입니다. 비록 저 높은 절벽으로부터 폭포가 쏟아지는 가운데 있지만, 그 뒷편에 아주 안전한 장소에서 보살핌을 받는 어린 새처럼 하나님을 신뢰하고 의지하는 사람들 또한 하나님께서 지키시고, 하나님께서는 그러한 사람들을 끝까지 포기하지 않고 저 천국으로 인도하실 수 있는 분이심을 믿습니다 :) 여호와께서 그를 황무지에서, 짐승의 부르짖는 광야에서 만나시고 호위하시며 보호하시며 자기 눈동자같이 지키셨도다 ( 성서 신명기 32장 10절 말씀 ) 이번 백준 알고리즘 문제는 빙글 빙글 소용돌이가 돌아가는 순서대로 숫자를 매겨서 표시하는 문제인데요. 은근히 함정들이 있더라구요. ​ https://www.acmicpc.net.. 더보기
백준 1003 피보나치 함수 문제풀이와 해설 은근히 헷갈리는 문제이긴 했는데, 헤메다가 결국 풀이했습니다 :) ​ 피보나치의 합계를 푸는거라면 좀 수월할텐데, 재귀호출에서 0과 1이 나오는 횟수를 풀라니 크레이에게는 좀 난해했습니다. ​ 피보나치 수열에서 재귀호출로 계산할 때 0과 1이 연산에 들어가는 횟수인지 숫자가 클수록 기하급수적으로 늘어나더라구요. ​ 이것 저것 고민하다가 인터넷 다른 분의 게시글도 참고하긴 했지만, 결국은 독자적으로 초고속으로 작동하도록 새로 만들었습니다. ​ long long 형 변수로 선언해서 60피보나치의 0과 1의 갯수까지도 계산할 수 있으며 ( 79로 시도해봤었는데 숫자 범위 초과로 엉뚱한 숫자가 구해지더라구요. 혼란드린점 죄송합니다 ) 60피보나치일 경우라도 연산시간은 10ms 이내인듯 합니다 :) 측정해보기는 .. 더보기
백준 1011번. Fly me to the Alpha Centauri 우주 여행 알고리즘 문제군요 :) ​ 이 문제는 여러 해법이 존재할 수 있을법 한데요. ​ 크레이에게는 약간 어려운 문제이긴 했으나 다음번에 유사한 패턴이 나오면 훨씬 시간을 단축해서 풀 수 있을듯 합니다. ​ 다른분의 풀이를 참조하긴 했지만 원리만 이해하고 고민하는 방법과 코딩은 새로 했으니까요. ​ 경우의 수까지는 적용하지 않고 반복패턴에 의한 풀이 방법을 적용했습니다. ​ 문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 .. 더보기
백준 알고리즘. 10809번. 알파벳 찾기 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. ​ 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. ​ 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. ​ 예제입력 baekjoon 예제출력 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 .. 더보기
백준 알고리즘 4673번 풀이와 해설 백준 알고리즘 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(.. 더보기
백준알고리즘 1008번 풀이 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. ​ 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) ​ 출력 첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10-9 까지 허용한다. ​ 예제입력 1 3 예제출력 0.33333333333333333333333333333333 이 문제는 무지 간단해 보이는데 한가지를 모르면 좀 어려울수도 있습니다. ​ 그냥 무턱대고 cout b; cout.precision(20); cout 더보기