7049 : 함수 합성 (Function Composition)
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
여러 개의 일변수 함수들을 리스트에 담아 관리하며, 이를 순차적으로 합성하여 최종 연산 결과를 구하는 프로그램을 작성하십시오.
정의할 변환 함수는 다음과 같습니다.
-
-
-
-
N개의 변환 함수 종류가 순서대로 주어지고 초기값 X가 주어졌을 때, 합성 함수 $f_N(f_{N-1}(...f_1(X)...))$의 최종 연산 결과를 구하십시오.
[제약 조건]
• 연산 개수 $N$: $1 \le N \le 10$
• 초기값 정수 $X$: $-10 \le X \le 10$
정의할 변환 함수는 다음과 같습니다.
-
double(x): $x \times 2$-
inc(x): $x + 1$-
square(x): $x^2$-
negate(x): $-x$N개의 변환 함수 종류가 순서대로 주어지고 초기값 X가 주어졌을 때, 합성 함수 $f_N(f_{N-1}(...f_1(X)...))$의 최종 연산 결과를 구하십시오.
[제약 조건]
• 연산 개수 $N$: $1 \le N \le 10$
• 초기값 정수 $X$: $-10 \le X \le 10$
입력 설명
첫째 줄에 연산의 개수 N이 주어집니다. (1 ≤ N ≤ 10)
둘째 줄부터 N개의 줄에 걸쳐 적용할 연산의 종류가 순서대로 주어집니다. ("double", "inc", "square", "negate" 중 하나)
마지막 줄에 초기값 정수 X가 주어집니다. (-10 ≤ X ≤ 10)
둘째 줄부터 N개의 줄에 걸쳐 적용할 연산의 종류가 순서대로 주어집니다. ("double", "inc", "square", "negate" 중 하나)
마지막 줄에 초기값 정수 X가 주어집니다. (-10 ≤ X ≤ 10)
출력 설명
변환 연산들을 순서대로 모두 적용한 최종 결과를 정수로 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
inc
double
square
3
출력 예시
COPY
복사되었습니다!
복사되었습니다!
64
도움
파이썬의
functools.reduce 함수를 사용하거나, 함수들을 담은 리스트를 반복문으로 순회하며 값을 누적 적용하여 구현할 수 있습니다.