본문 바로가기

Programming/백준 문제풀이

(21)
백준 11729번 _ Hanoi / recursion 재귀 문제 (C++) 문제: https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5 www.acmicpc.net 어제 새벽에 꽤나 기싸움 끝에 풀어냈던 문제이다. 하노이탑 문제는 재귀 관련된 문제 중에서 매우 유명하고 대표적인..
백준 1152번 string _ while문/cin EOF 연습 (C++) 문제: https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net 이 문제는 c++에서 string을 어떻게 입력받는지를 아는지 모르는지에 따라 그 체감난이도가 매우 다를 것이다. 파이썬이용자라면 그냥 문자를 다 읽은 다음에 공백을 기준으로 split을 해야지! 라는 생각이 먼저 들 것 같다. 하지만 C++에서의 string은 문자열을 공백을 기준으로 입력받기 때문에, 단순히 몇번 입력받았는지만 count..
백준 1065 한수_ 함수(function)사용! (C++) 문제: https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 사실 굉장히 간단한 문제이면서, 동시에 함수를 연습해보기 좋은 문제이다. 문제의 핵심은 간단하다. 99까지는 모든 숫자들이 각 자릿수끼리 등차수열을 이룬다. (비교군이 없기 때문이다.) 1의 자리나 10의 자리까지 구현하려다보면 복잡해질 수 있지만 1-99면 그냥 그 숫자를 리턴하게 만들어준다. (편-----안) 하지만 100, 즉 ..
백준 1002번 터렛 _ C++, python 두가지 풀이. 문제: https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 일단 문제가 너무 귀엽다.. 존재감이 없어서 인구수는 잡아먹지 않는다니..ㅋㅋㅋㅋ 각설하고, 바로 문제를 보자! 이 문제는 쉽게 두 사람(조씨와 백씨)의 위치와 적으로부터의 거리가 주어졌을 때 적이 있을 수 있는 위치의 갯수를 반환하는 문제이다. 그러면 이렇게 생각할 수 있겠다. 한 사람의 위치(x,y)와 적으로부터의 거리(r)가 주어진다면 적이 있을 수 있는 위치는 그 사람(x,y)로부터 반지름 r로 그려진 원 위일 것이다. 그렇다면 두 사..
백준 2884번 시계 세팅 문제 _ C++, python 두가지 풀이 비교. 문제: https://www.acmicpc.net/problem/2884 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 맞추기"이다. 이 방법은 단순하다. 원래 맞춰져있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 www.acmicpc.net 이제 여유로울 때 백준 알고리즘 문제도 풀면서 하나씩 업로드를 해볼까해요. 요즘엔 C++도 다시 공부하고 있는데요, 때문에 앞으..