페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB
C는 70년대에 만들어진 오래된 프로그래밍 언어로, 오래되었음에도 매우 널리 사용된다.
이 언어에서는 이름이 namn인 함수의 호출을 namn(parameter1, parameter2, ..., parameterN) 형식으로 작성한다.
매개변수는 변수(이 문제에서는 a-z 문자로 이루어진 문자열)일 수도 있고, 그 자체가 함수 호출일 수도 있다.
예를 들어 완전한 함수 호출은 다음과 같은 모습일 수 있다.
a(b, c(d), e(f, g(h, i, j)))
매개변수가 없는 함수 호출은 funktion()와 같이 작성한다.
Lisp는 50년대에 만들어진 또 다른 프로그래밍 언어이다.
이 언어에서는 이름이 namn인 함수의 호출을 (namn parameter1 parameter2 ... parameter N) 형식으로 작성한다.
마찬가지로 매개변수는 그 자체가 변수일 수도 있고 함수 호출일 수도 있다.
위에서 설명한 C의 함수 호출은 대신 다음과 같이 작성할 수 있다.
(a b (c d) (e f (g h i j)))
매개변수가 없는 함수 호출은 (funktion)와 같이 작성한다.
이러한 프로그래밍 언어의 역사를 왜 설명할까? 알고 보니 심사위원 Simon은 C를 좋아하지만 Lisp는 좋아하지 않는다. 반면 심사위원 Johan은 Lisp를 좋아하지만 C는 좋아하지 않는다.
그래서 Johan이 자신의 예제 풀이를 모두 Lisp로 작성하자 Simon은 매우 화가 났고, Johan의 프로그램을 C로 변환하려고 한다. Lisp 형식의 함수 호출이 주어졌을 때 이를 C 형식의 함수 호출로 변환하는 프로그램을 작성하여 Simon을 도와주자.
여러 테스트 케이스 그룹으로 풀이를 평가한다. 한 그룹의 점수를 받으려면 그 그룹의 모든 테스트 케이스를 통과해야 한다.
그룹 | 점수 | 제한
|| 입력의 어떤 매개변수도 함수 호출이 아니다
|| 호출은 최대 두 단계까지 중첩된다. (a (b) (c))와 (a (b c))는 나타날 수 있지만, (a (b (c)))는 나타날 수 없다
|| 모든 호출에는 적어도 하나의 매개변수가 있으며, 모든 변수와 함수 이름은 오직 한 글자로만 이루어진다
|| 입력의 길이는 최대 자이다
|| 추가 제한 없음
입력은 올바른 Lisp 형식의 함수 호출 하나가 적힌 한 줄로 이루어지며, 길이는 최대 자이다. 모든 매개변수는 정확히 하나의 공백으로 구분되며, 필요하지 않은 곳에는 추가 공백이 없다.
C 형식으로 변환한 함수 호출을 한 줄에 출력한다. 예제와 같이 각 쉼표 뒤에 공백 하나를 포함한다.
(a b (c d) (e f (g h i j)))
a(b, c(d), e(f, g(h, i, j)))
(min alfa beta)
min(alfa, beta)
(prog (olymp (onlinekval)))
prog(olymp(onlinekval()))
Programmeringsolympiaden
로그인 상태를 확인하는 중입니다.