본문 바로가기

<알고리즘 문제풀이&연습>/[C++] 백준68

[백준 1463] 1로 만들기 (BFS) 안녕하세요. BlockDMask 입니다.이번주 (17년 12월 11일 ~ 15일) 문제 (2/3) 풀어보겠습니다.!어제는 1 로 만들기 문제를 Dynamic Programming 방법으로 풀어봤는데오늘은 BFS 의 방법으로 풀어 보았습니다.0. 제목백준 1463 1로 만들기 (BFS)BOJ 1463 1로 만들기 (BFS)1. 문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 입니다. 1) X가 3으로 나누어 떨어지면, 3으로 나눈다. 2) X가 2로 나누어 떨어지면, 2로 나눈다. 3) X에서 1을 뺀다.정수 N이 주어졌을때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만드려고 합니다.연산을 사용하는 횟수의 최소값을 출력하면 됩니다.입력 - 첫째 줄에 1 보다 크거나 같고, 10^6보다.. 2017. 12. 13.
[백준 1463] 1로 만들기 (DP) 안녕하세요 BlockDMask 입니다.이번주(17년 12월 11~15일)문제(1/3) 풀어보겠습니다.0. 제목백준 1463 1로 만들기 (DP)BOJ 1463 1로 만들기 (DP)1. 문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. 1. X가 3으로 나누어 떨어지면, 3으로 나눈다. 2. X가 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 합니다. 연산을 사용하는 횟수의 최소값을 출력하면 됩니다.--입력-- 첫째 줄에 1보다 크거나 같고, 10^6보다 작거나 같은 자연수 N이 주어집니다.--출력-- 첫째 줄에 연산을 하는 횟수의 최소 값을 출력합니다.ex) 입력이 10 이면, 9 (3번규칙)->.. 2017. 12. 12.
[백준 2748] 피보나치 수2 안녕하세요. BlockDMask 입니다.제가 과거(17년 8월)에 피보나치 수 문제 에서 재귀함수로 풀었을때, 시간 초과가 난다고 판단하여 반복문으로 풀었던 적이 있었습니다.오늘 아침일찍 "큰돌"님 께서 이미 계산한 값을 캐싱(저장)함으로서 또다시 계산하는 시간을 줄여서 푸는 방법이 있다고 댓글을 달아주셨습니다. (가르침을 주셔서 감사합니다.)그러한 방법으로 피보나치 수 2문제를 풀어 봤습니다.0. 제목백준 2748 피보나치 수2BOJ 2748 피보나치 수2C/C++ Fibonacci 1. 문제 설명피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고 1번째 피보나치 수는 1이다.그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = F(n-1) + F(n-.. 2017. 12. 5.
[백준 1924] 2007년 안녕하세요. BlockDMask 입니다.지난주에는 정말 기쁜 일이 있었고, 그 일 이후로 정신이 없어서 목금토일을 쉬었네요.다시 오늘부터 꾸준하게 !! 오늘의 문제 풀겠습니다.0. 제목백준 1924 2007년BOJ 1924 2007년C/C++ 달력문제1. 문제 설명오늘은 2007년 1월 1일 월요일 입니다. 그렇다면 2007년 X월 Y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.첫째 줄에 빈 칸을 사이에 두고 x(1> y; key = 0; } void solution(){ for(int i=0; i 2017. 12. 4.
[백준 5648] 역원소 정렬 안녕하세요. BlockDMask 입니다.오늘은 역원소 정렬이라는 문제를 풀어봤습니다.0. 제목 백준 5648 역원소 정렬BOJ 5648 역원소 정렬reverse and sort1. 문제 설명모든 원소가 양의 정수인 집합이 있을 때, 원소를 거꾸로 뒤집고 그 원소를 오름차순으로 정렬하는 프로그램을 작성하세요. 단, 원소를 뒤집었을 때 0이 앞에 선행되는 경우는 0을 생략해야 합니다.입력 첫 번째로 입력되는건 n (1 2017. 11. 29.
[백준 1212] 8진수 2진수 안녕하세요. BlockDMask 입니다. 오늘은 8진수를 2진수로 바꾸는 문제를 풀어보았습니다.0. 제목백준 1212 8진수 2진수BOJ 1212 Oct to BinaryC/C++ 8진수를 2진수로1. 문제 설명8진수가 주어졌을때, 2진수로 변환하는 프로그램을 작성하시오.첫째 줄에 8진주가 주어집니다. 수의 "길이"는 333,334를 넘지 않습니다. 첫째 줄에 주어진 수를 2진수로 변환하여 출력합니다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 합니다.입력) 0출력) 0입력) 362출력) 111100102. 풀이 과정두가지 방법으로 문제를 풀었습니다.a. 8진수 한자리를 나누고, 나눈 몫과 나머지를 통해서 2진수 세자리로 변환하는 방식.b. 8진수 한자리를 미리 저장해둔 2진수 세자리로 변환하는 .. 2017. 11. 28.
[백준 2447] 별찍기10 안녕하세요. BlockDMask 입니다.별찍기 시리즈의 열번째 입니다.0. 제목백준 2447 별찍기10BOJ 2447 별찍기10C++ 별찍기 반복문1. 문제 설명아래 사진을 보고 별찍는 규칙을 유추한 뒤에 별을 찍어 보시오.첫째 줄에 N이 주어진다. N은 항상 3의 제곱꼴인 수이다. (1, 3, 9, 27, ...) (N=3^k, 0 2017. 11. 22.
[백준 2446] 별찍기9 안녕하세요. BlockDMask 입니다.별찍기 시리즈중 아홉번째 입니다. 171101 문제 빼먹음 -> 171121 완료0. 제목백준 2446 별찍기9BOJ 2446 별찍기9C++ 별찍기1. 문제 설명모래시계 모양으로 별을 찍으면됩니다. 2. 풀이 과정어제 밤에 했던 2017/11/20 - [/[C++] BAEKJOON] - [백준 2445] 별찍기8 에서 조금 수정하여 코드를 완성했습니다. 3. 소스 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546//https://www.acmicpc.net/problem/2446//BOJ_2446_star9 #include#includeusing namespac.. 2017. 11. 21.
[백준 10820] 문자열 분석 안녕하세요. BlockDMask 입니다.오늘의 문제 풀어보겠습니다.0. 제목백준 10820 문자열 분석BOJ 10820 문자열 분석C++ 문자열C 문자열1. 문제 설명문자열 N개가 주어진다.이 때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.입력 첫째 줄부터 N번째 줄 까지 문자열이 주어진다. (1 2017. 11. 21.
[백준 2445] 별찍기8 안녕하세요. BlockDMask 입니다.별찍기 시리즈 중 여덟번째 입니다.시작하겠습니다. 171026 문제 빼먹음 -> 171120 완료0. 제목백준 2445 별찍기8BOJ 2445 별찍기 8C++ 별찍기1. 문제 설명모래시계 형태로 별을 찍으면 됩니다.입력 : N (1 2017. 11. 20.