본문 바로가기

분류 전체보기559

Baekjoon 24509 상품의 주인은? JAVA 24509번: 상품의 주인은? 혜민이네 반은 총 $N$명의 학생으로 이루어져 있으며 학생마다 번호가 다르게 배정되어 있다. 이번 시험은 국어, 영어, 수학, 과학 총 4과목으로 진행되며, 학생들이 공부를 열심히 할 수 있게 과 www.acmicpc.net 문제 혜민이네 반은 총 N명의 학생으로 이루어져 있으며 학생마다 번호가 다르게 배정되어 있다. 이번 시험은 국어, 영어, 수학, 과학 총 4과목으로 진행되며, 학생들이 공부를 열심히 할 수 있게 과목별 1등에게 상품을 주기로 했다. 수상은 국어, 영어, 수학, 과학 순서로 하며 최대한 많은 학생에게 상품을 주고 싶기 때문에 학생마다 상품은 한 번만 받을 수 있다. 예를 들어 국어 과목에서 1등 한 사람이 수학 과목에서 또 1등을 한다면 국어 과목에서 상.. 2022. 9. 7.
Baekjoon 19575 Polynomial JAVA 19575번: Polynomial 경근이는 수학을 좋아한다. 수학을 너무 좋아하는 나머지 다항식을 빠르게 평가하는 프로그램을 작성했다. 미지수 x로 구성된 다항식 f(x)에서 x에 k를 대입하여 f(k)를 구하는 것을 평가라고 한다 www.acmicpc.net 문제 경근이는 수학을 좋아한다. 수학을 너무 좋아하는 나머지 다항식을 빠르게 평가하는 프로그램을 작성했다. 미지수 x로 구성된 다항식 f(x)에서 x에 k를 대입하여 f(k)를 구하는 것을 평가라고 한다. 하지만, 경근이가 작성한 프로그램은 다항식의 각 항을 평가해서 합치는 식으로 짜여 있었기 때문에, 한 번 다항식을 평가할 때마다 차수의 제곱에 비례한 만큼의 시간이 걸렸다. 경근이는 계산 시간을 조금이라도 줄이기 위해, 다항식 평가 알고리즘을 개.. 2022. 9. 7.
TCL 스크립트 라이브러리 스크립트 라이브러리 라이브러리는 유용한 프로시져들을 묶어서 다른 응용 프로그램에서 사용할 수 있게 함 큰 프로그램을 만들때에는 간단한 메인을 작성하고 기타 함수는 라이브러리로 생성 작은 단위로 쪼개면 필요할 때만 메모리에 탐재되기에 수행 효율 향상 가능 TCL프로그램을 작성할 때에는 코드 변환에 주의해야 함 TCL은 형식화된 모듈 시스템이 없기에 다른 패키지에서 프로시져와 전역 변수 충돌을 막기 위한 코드 변환이 필요 unknown 명령 TCL 라이브러리 기능은 unknown 명령에 의해 사용가능 TCL 해석기가 해석할 수 없는 명령을 만나는 경우 그 명령을 인자로 하여 unknown 명령을 호출 unknown 명령은 TCL로 구현되어 있기에 해석 불가능한 명령을 해석하는 새로운 unknown 명령을 생.. 2022. 9. 6.
TCL UNIX에서 작업하기 UNIX에서 작업하기 글의 기본은 UNIX를 기초로 하지만, DOS나 Macintosh 등에서도 TCL 해석기가 있기에 사용 가능 exec 명령으로 UNIX 프로그램 수행 exec 명령은 TCL 스크립트에서 UNIX 명령을 수행 set d [exec date] 수행 결과는 표준 출력으로 출력된 결과 만약 수행한 프로그램이 표준 오류 출력으로 결과를 찍거나 상태 코드 값이 0이 아닐 경우는 에러 exec 명령은 I/O redirection과 pipeline 구문을 완벽히 지원 exec 명령에서 사용할 수 있는 여러 문법 keepnewline : 결과값의 마지막에 있는 newline 문자를 없애지 않음 | : pipeline |& : 표준 에러 출력으로도 파이프라인 수행 < fileName : fileNam.. 2022. 9. 6.
TCL Eval EVAL? 어떤 변수나 명령을 해석하기 위해서는 치환을 필요로 함 고급 기능의 치환은 eval이나 subst, after, uplevel, sen 명령에 의해 수행 리스트로 명령어 조합 eval 명령은 TCL 해석기에게 또 다른 호출을 하게 만듦 명령어를 동적으로 조합하기 위해서는 eval 명령을 사용 예를 들어 다음 명령을 나중에 수행시키고 싶은 경우 puts stdout "Hello, World!" 이러한 경우에는 아래와 같이 하면 됨 set cmd {puts stdout "Hello, World!"} eval $cmd #Hello, World! 외부에 출력할 스트링이 string이라는 변수에 저장 되어 있다고 가정 eval 명령의 수행 시점에서 string 변수에 값이 없을 경우 set string.. 2022. 9. 5.
TCL 프로시져와 스코프 TCL 프로시져와 스코프 프로시져와 스코프 프로시져는 자주 사용되는 일련의 명령들을 묶어 쉽게 사용할 수 있게 함 각 프로시져는 변수에 대한 새로운 스코프를 가짐 변수의 스코프란 그 변수가 정의되는 명령의 영역을 의미 proc 명령 TCL 프로시져를 정의하는 명령 proc name params body name은 프로시져의 이름, 대소문자를 구분하며 어떤 문자도 포함할 수 있다 params는 파라미터 이름의 리스트 정의된 프로시져는 다른 TCL 명령과 똑같은 방식으로 사용 특정 값을 돌려주기 위해 return 명령을 사용할 수 있음 default로는 마지막 명령의 결과 값이 반환됨 프로시져의 파라미터 이름 리스트는 기본 값을 가질 수 있음 proc p2 {a {b 7} {c -2} } { expr $a*.. 2022. 9. 5.
TCL 순서제어 명령 순서제어 명령 루프를 위한 명령으로 while, foreach, for가 있음 조건문으로 if와 switch가 있음 에러 처리 명령으로 catch 순서를 제어하기 위한 명령으로 break, continue, return, error가 존재 몸체 부분은 치환을 방지하기 위해 { }로 묶어야 함 마지막에 수행한 명령의 리턴값을 돌려줌 { }의 다른 용도는 Newline 문자를 포함한 스트링을 묶을 수 있음 if, for while 등의 명령은 참/거짓을 돌려주는 boolean 수식을 포함 if, for, while 명령은 내부적으로 expr 명령을 자동으로 수행하기에 명시하지 않아도 됨 If Then Else if는 기본적인 조건 명령 조건이 참이면 뒤에 따르는 body를 실행하고 그렇지 않으면 else를 .. 2022. 9. 2.
TCL 자료 구조 TCL 자료 구조 TCL의 자료 구조 TCL의 기본적인 자료 구조는 String TCL에는 리스트와 배열의 두 가지 자료 구조가 더 존재 리스트는 스트링으로 구현되며 구조는 스트링 문법에 의해 정의 문법은 일반 명령의 경우와 같으며, 명령도 리스트의 일종 배열은 index를 가지는 변수 index또한 스트링 값이기에 배열은 하나의 스트링(index)로부터 다른 스트링(배열 원소의 값)의 대응이라고 생각할 수 있음 작은 자료의 경우 리스트가 적당, 큰 자료의 경우 배열이 적당 변수의 사용 puts [set var {the value of var}] #var = "the value of var" puts [set name var] #name = var puts [set name] #name = var put.. 2022. 9. 2.
TCL 스트링과 패턴 매칭 TCL 스트링과 패턴 매칭 스트링과 패턴 매칭 스트링은 TCL에서 사용하는 기본 자료 구조 TCL은 스트링을 다루는 많은 명령을 보유 스트링에서 특정 패턴을 찾아내는 패턴 매칭을 쉽게 할 수 있음 TCL은 Glob 매칭과 Regular Expression 매칭의 두 가지 패턴 매칭 방법을 제공 String 명령 String 명령의 기본 문법 string operation stringvalue ?otherargs? operation 인자는 string 명령으로 무엇을 할 것인지를 나타냄 stringvalue 인자는 string 값 그 외에 명령에 따라 인자가 더 올 수도 있다 string 명령의 여러 형태 string compare str1 str2 : 두 스트링을 비교. str1-str2 연산을 하여 s.. 2022. 9. 2.
728x90
728x90