반응형

전체 글 408

[Level 1] 피보나치 수 (반복문)

안녕하세요 BlockDMask 입니다.프로그래머스 알고리즘 문제 C++ 로 풀었습니다. 171109 문제 빼먹음 -> 171215 완료0. 제목프로그래머스 Level 1 피보나치 수Programmers Level 1 Fibonacciprogrammers C++ fibonacci1. 문제 설명피보나치 수는 F(0) = 0, F(1) = 1 일때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식 입니다.2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환하면 됩니다.F(3) = 2 F(15) = 610 을 출력하면 됩니다.2. 풀이 과정제가 아는 피보나치 수를 구하는 방법은 recursive 를 이용한 방법과 반복문을 이용하는 방법 ..

[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)는 유클리드 알고리즘을 통해서 구하였습니다. 유..

[맥OS] 맥북 배터리 최대 충전 용량, 사이클 수 확인 방법

안녕하세요. BlockDMask 입니다. '맥북 배터리 최대 충전 용량 및 사이클 수 확인 방법' 에 대해서 알아보겠습니다. 우리가 맥북을 잘 쓰다가, 중고나라 등에 팔려고 할때! 아 맥북을 사볼까 해서 중고나라에서 맥북을 사려고 할때! "맥북 배터리 최대 충전 용량 이랑 사이클 수 어떻게 되죠?" 라는 것을 볼 수 있는데, 이것을 확인 하는 방법입니다. 1. 왼쪽위의 사과를 눌러 "이 Mac에 관하여"를 누릅니다. 2. 개요 부분의 "시스템 리포트" 를 누릅니다. 3. 하드웨어 카테고리의 "전원" 부분을 누릅니다. "충전잔량", "최대 충전 용량", "사이클 수"를 확인합니다.

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

[C++] reinterpret_cast (타입캐스트 연산자)

안녕하세요 BlockDMask 입니다.이번에는 C++ 의 네가지 타입 캐스트 연산자 중에 (static_cast, const_cast, reinterpret_cast, dynamic_cast) reinterpret_cast 에 대해 알아보겠습니다.>reinterpret_cast 에 관한 기본 특성reinterpret_cast(expression)reinterpret_cast(대상) reinterpret_cast는 임의의 포인터 타입끼리 변환을 허용하는 캐스트 연산자 입니다. 또한 정수형을 포인터로 바꿀 수도 있습니다. (이때 정수값이 포인터의 절대 주소로 들어가게 됩니다. -> 위험)expression에 해당하는 것을 new_type으로 비트단위로 바꾸는 것 입니다. 다른 형태의 포인터로 변경이 가능하기..

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

[C++] const_cast (타입 캐스트 연산자)

안녕하세요. BlockDMask 입니다.오늘은 C++ 의 네가지 타입 캐스트 연산자 중에 (static_cast, const_cast, reinterpret_cast, dynamic_cast) const_cast 에 대해 알아보겠습니다.> const_cast 에 관한 기본 특성const_cast(expression)const_cast(대상) const_cast는 포인터(pointer) 또는 참조형(reference)의 상수성(const)를 잠깐 제거해주는데 사용합니다. const_cast는 volatile 키워드를 잠깐 제거해 주는 데에도 사용이 가능합니다. 다른 캐스트 연산자가 하는 형 변환은 불가능 하며 오직 상수성(const)를 제거하는 것만 사용가능 합니다. 또한 다른 캐스트 연산자는 const_..

[C++] static_cast (타입캐스트 연산자)

안녕하세요 BlockDMask 입니다.오늘은 C++의 네가지 타입변환 연산자 static_cast, dynamic_cast, reinterpret_cast, const_cast 중 static_cast에 대해 알아보겠습니다. > static_cast 기본 형태 static_cast(대상); static_cast(expression)특징 (논리적으로 변환 가능한 타입을 변환한다) compile 타임에 형변환에 대한 타입 오류를 잡아줍니다. 실수와 정수, 열거형과 정수형, 실수와 실수 사이의 변환 등을 허용한다. arr -> point로 변경 가능합니다.function -> function pointer로 변경 가능합니다. 포인터 타입을 다른것으로 변환 하는 것을 허용하지 않습니다. (compile erro..

[운영체제] Banker's algorithm(은행원 알고리즘) 구현 - Deadlock

안녕하세요 BlockDMask 입니다.2017/11/24 - [/[Operating System]] - [운영체제] Deadlock(교착상태)에 대해서지난시간에 이어서 이번시간에는 Deadlock(교착상태)를 회피하거나 탐지할 때 사용할 수 있는 은행원 알고리즘(Banker's algorithm)을 구현해보겠습니다.문제는 공룡책 8th 7.10번 문제입니다.**직접 구현한 것이라,, 많이 부족할 수 있습니다. 보완이 필요한 부분은 댓글로 달아주시면 감사하겠습니다. 1. 구현할 내용현재 시스템의 상태를 아래와 같이 정의 하겠습니다. 프로세스가 안전한지(deadlock 이 발생하지 않는지) 확인할 수 있고 프로세스가 어떤 순서로 자원을 할당 받는지 볼 수 있도록 구현하겠습니다. Allocation Max A..

반응형