C++의 특징 정리 창시자 비아르네 스트로우스트루프(Bjarne Stroustrup) 특징 1. C언어와의 호환성, C언어의 문법 체계를 계승. 단점 : 캡슐화의 원칙이 무너짐. C++에서 전역 변수와 전역 함수를 사용할 수밖에 없게 됨. 2. 객체 지향 개념 도입 캡슐화, 상속, 다형성 소프트웨어의 재사용을 통해 생산성 향상. 복잡하고 큰 규모의 소프트웨어 작성, 관리, 유지보수에 용이 C언어의 +알파 버전이라고 할 수 있음 3. 추가된 기능들 1) 함수 중복(오버라이딩) 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들 선언 가능 2) 디폴트 매개 변수 매개 변수에 디폴트 값이 전달되도록 함수 선언 3) 참조와 참조 변수 하나의 변수에 별명을 사용하는 참조 변수 도입 4) 참조에 의한 호출 함수 ..
[파이썬] 백준 2579 : 계단 오르기 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 실버 3 DP 접근 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 계단을 한 계단 밟을지, 두 계단을 밟을지를 선택할 수 있다. dp문제를 풀 때..
[파이썬] 백준 8394 : 악수 https://www.acmicpc.net/problem/8394 8394번: 악수 첫째 줄에 회의에 참석한 사람의 수 n (1 ≤ n ≤ 10,000,000)이 주어진다. www.acmicpc.net 실버 4 수학, DP 접근 하나하나 경우의 수를 직접 계산해보면 피보나치 수열로 규칙이 나타난다는 것을 알 수 있다. 문제는 n의 범위가 어마어마하기 때문에 수가 커지면 커질수록 다루는 수가 기하급수적으로 증가한다는 점이다. 시간 초과하지 않으려면 구한 값의 마지막 자리를 미리 넣어주는 방법을 이용해야 했다. 코드 import sys n = int(sys.stdin.readline()) dp = [1] * (n+1) for i in range(2, n+1): dp[i] =..
[파이썬] 백준 1463 : 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 실버 3 DP 접근 1로 빼거나 2로 나누어지면 2로 나누거나 3으로 나누어지면 3으로 나눈다. 이걸 그대로 구현하면 10을 입력값으로 주었을 때 예외가 생긴다. 위의 방법을 그냥 분기로 구현하면 10 > 5 > 4 > 2 > 1 이렇게 총 4번이 되지만, 10 > 9 > 3 > 1로 총 3번이면 1로 만들 수 있는 방법이 있기 때문이다. 만약 입력 값에서 처음의 3가지 경우를 각각 사용했을 때 구해진 연산 횟수중에 가장 작은 값을 선택할 수 있다면 좋을 것이다. 문제를..
[파이썬] 백준 1003 : 피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 실버 3 DP 접근 문제에서 써져 있는 재귀함수 방법 그대로 날먹하면 시간초과 당한다... import sys zero_cnt = 0 one_cnt = 0 def fibo(x): global zero_cnt global one_cnt if x == 0: zero_cnt += 1 return 0 elif x == 1: one_cnt += 1 return 1 else: return fibo(x-1) + fibo(x-2) t = int(sys.stdin.r..
[파이썬] 백준 13301 : 타일 장식물 https://www.acmicpc.net/problem/13301 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 실버 5 수학, DP 접근 그냥 피보나치 수열을 응용한 문제. 입력한 수를 K라고 가정하고, 피보나치 수열을 prime[1]~prime[K]로 구현한다면 문제에서 제시하는 그림은 다음과 같다. 코드 import sys K = int(sys.stdin.readline()) prime = [0]*(K+1) prime[1] = 1 for i in range(2,..