반응형

<알고리즘 문제풀이&연습> 103

[Level 1] 최대공약수와 최소공배수

안녕하세요. BlockDMask 입니다.프로그래머스 알고리즘 문제 C++ 언어로 풀어보겠습니다. 171108 문제 빼먹음 -> 171214 완료0. 제목프로그래머스 Level 1 최대공약수와 최소공배수Programmers Level1 GCD & LCMC++ gcd, lcm1. 문제 설명두 수를 입력받아 두 수의 최대공약수(gcd)와 최소공배수(lcm)를 반환해주는 gcdlcm 함수를 완성해 보세요.배열의 맨 앞에 최대공약수, 그 다음 최소 공배수를 넣어 반환하면 됩니다.예를 들어 gcdlem(12, 54)가 입력되면, [6, 108]를 반환하면 됩니다.2. 풀이 과정swap 함수를 통해서 항상 파라미터로 받은 a가 큰수가 되도록 하였습니다.최대공약수(gcd)는 유클리드 알고리즘을 통해서 구하였습니다. 유..

[백준 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보다..

[Level 1] 행렬의 덧셈

안녕하세요 BlockDMask 입니다.프로그래머스 알고리즘 문제 풀어보겠습니다. 171107 문제 빼먹음 -> 171213 완료0. 제목프로그래머스 Level 1 행렬의 덧셈Programmers Level 1 Sum of matrixC++ vector container1. 문제 설명행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환하면 됩니다. 예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 이 주어지면같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해 주세요.)2...

[백준 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번규칙)->..

[Level 1] 약수의 합 (C언어 약수구하기)

안녕하세요.BlockDMask 입니다. 프로그래머스 알고리즘에서C++ 을 지원하는 문제들을 차례대로 풀어보려합니다.[Level 1] 부터 Start !!171102 문제 빼먹음 -> 171212 완료 0. 제목- 프로그래머스 Level 1 약수의 합- Programmers Level 1 sum of divisors 1. 문제 설명- 어떤 수를 입력받아 그 수의 약수를 모두 더한 값을 반환하는 sumDivisor 함수를 완성하면 됩니다. 12가 입력이 되면 12의 약수인 {1, 2, 3, 4, 6, 12} 가 더해져서28이 반환되는 함수입니다. 2. 풀이 과정입력 받은 수 n 일때1 부터 n 까지 숫자를 하나씩 숫자를 돌리면서n 으로 나누어 떨어지면 sum에 더하는 방식입니다. 3. 소스 코드1234567..

[백준 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-..

[백준 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

[백준 5648] 역원소 정렬

안녕하세요. BlockDMask 입니다.오늘은 역원소 정렬이라는 문제를 풀어봤습니다.0. 제목 백준 5648 역원소 정렬BOJ 5648 역원소 정렬reverse and sort1. 문제 설명모든 원소가 양의 정수인 집합이 있을 때, 원소를 거꾸로 뒤집고 그 원소를 오름차순으로 정렬하는 프로그램을 작성하세요. 단, 원소를 뒤집었을 때 0이 앞에 선행되는 경우는 0을 생략해야 합니다.입력 첫 번째로 입력되는건 n (1

[백준 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진수 세자리로 변환하는 ..

반응형