Juwan Park :: '★프로그래밍/Ruby' 카테고리의 글 목록 (2 Page)

'★프로그래밍/Ruby'에 해당되는 글 28

  1. 2016.08.18 루비로 XML 문서 파싱하기
  2. 2016.08.18 루비로 XML 파일 생성하기
  3. 2016.08.18 Tk로 루비에서 GUI 프로그램 구현해보기
  4. 2016.08.17 루비에서는 0도 참값(true)으로 본다?
  5. 2016.08.17 루비에서 문자열 치환하기
  6. 2016.08.16 루비에서 변수 값 스와핑하기
  7. 2016.08.13 한글 완성자 분석하기
  8. 2015.09.29 피보나치 수열의 n번째 수 차례로 출력
  9. 2015.09.21 2차원 배열 처리 예제
  10. 2015.09.20 자동 미로 생성 예제

루비로 XML 문서 파싱하기

이전에 루비로 XML 문서 생성하는 방법에 관한 포스팅을 했습니다.이번에는 반대로 XML 문서를 파싱하는 방법입니다.이는 XML 문서의 각 요소들을 분석해서 추출하는 방법을 말합니다. 먼저, XML 파싱을 하려면 Nokogiri 라이브러리가 필요합니다.설치 방법은 Builder와 같습니다. 콘솔 명령창에서 'gem list --local'이라고 쳐서 나오는 목록 중에 'nokogiri'가 없으면 설치해야 합니다. nokogiri를 설치하려면 'gem install nokogiri'라고 치시면 됩니다. (※ nokogirl이 아닙니다. nokogirl로 오타를 내는 사람이 많아서인지 nokogirl이라고 쳐도 되긴 하지만...)루비로 XML 문서 생성하기 예제에서 생성했던 girlgroup.xml 파일을 ..

★프로그래밍/Ruby :: 2016.08.18 20:05

루비로 XML 파일 생성하기

루비로 XML 파일을 생성하는 방법을 설명하는 포스트입니다. 자, 루비로 XML 파일을 생성하려면 Builder 라이브러리가 필요합니다. 콘솔 명령창에서 'gem list --local'이라고 쳐서 나오는 목록 중에 'builder'가 없으면 설치해야 합니다. builder를 설치하려면 'gem install builder'라고 치시면 됩니다. builder 라이브러리가 설치됐으면, 다음과 같이 코딩해 봅시다. require 'builder' # Builder 라이브러리 불러오기 def buildxml element = Builder::XmlMarkup.new( :indent => 2 ) # 새 XML 문서 element.instruct! # XML DTD 생성 element.girlgroup { # g..

★프로그래밍/Ruby :: 2016.08.18 15:05

Tk로 루비에서 GUI 프로그램 구현해보기

Tk로 루비에서 GUI 프로그램 구현해보기

자바의 awt처럼 루비도 GUI 프로그램을 구현할 수 있는 툴킷이 있습니다. 루비와 파이썬 등에서 쓰이는 'Tk'라는 툴킷입니다. Tk 말고도 사용 가능한 GUI 툴킷이 몇 가지 더 있긴 하지만 여기서는 Tk만 우선 맛보기로 보여드립니다. 루비에서 Tk를 사용하려면... 루비를 설치하는 화면에서 경로 지정 단계로 가면 아마도 'Install Tcl/Tk support'라고 적혀 있는 체크박스가 있었을 것입니다. 이 체크박스에 체크를 하고 설치하면 Tk를 사용할 수 있습니다. Tk를 사용 가능한 상태에서 다음과 같이 코딩을 해 봅시다. require 'tk' root = TkRoot.new { title "Hello, World!" } root['geometry'] = '300x200' TkLabel.ne..

★프로그래밍/Ruby :: 2016.08.18 11:04

루비에서는 0도 참값(true)으로 본다?

C언어나 자바스크립트, 파이썬 등에 익숙해지신 분이라면 0을 false로, 0이 아닌 값을 true로 본다는 사실을 알고 계실지도 모르겠습니다. ※ (자바스크립트 말고) 자바는 if(v)의 형식일 때 v가 논리형 아니면 오류가 일어나므로 논외로 하고,하지만,0은 곧 거짓(false)이라는 통념은 루비에는 적용되지 않는 이야기라는 사실을 알고 계신가요?아래 코드를 봅시다. a = 0 if (a) puts "True" else puts "False" end '0 = false' 통념대로라면 이 코드는 'False'라는 메시지를 출력할 것처럼 보입니다.하지만 실제로 이 코드를 실행시키면 True 이와 같이 'False'가 아닌 'True'가 표시됩니다. 이 코드를 C언어, 파이썬, BASIC 등에 이식해서 실..

★프로그래밍/Ruby :: 2016.08.17 23:37

루비에서 문자열 치환하기

여기서는 루비에서 문자열 치환하는 코드를 포스팅합니다. 자, 먼저 코드를 하나 봅시다. name = "강정호" puts sprintf("%s는 메이저리그에서 뛰고 있다.", name) name["강정"] = "박병" puts sprintf("%s는 메이저리그에서 뛰고 있다.", name) name["박병"] = "이대" puts sprintf("%s는 메이저리그에서 뛰고 있다.", name) 이 코드를 실행시킨 결과는 다음과 같습니다. 강정호는 메이저리그에서 뛰고 있다. 박병호는 메이저리그에서 뛰고 있다. 이대호는 메이저리그에서 뛰고 있다. 다른 방법으로, gsub 함수를 사용한 방법입니다. name = "강정호" puts sprintf("%s는 메이저리그에서 뛰고 있다.", name) name.gsub..

★프로그래밍/Ruby :: 2016.08.17 19:52

루비에서 변수 값 스와핑하기

루비에서 두 변수의 값을 스와핑하는 방법입니다. 예를 들어, a에 2가 대입되어 있고 b에 3이 대입되어 있다고 했을 때 둘을 바꿔치기해서 a=3, b=2로 만드는 방법을 말합니다. 일단 a와 b를 스와핑하는 의사코드를 보겠습니다. temp ← a a ← b b ← temp a ← a Xor b b ← a Xor b a ← a Xor b a, b ← b, a 흔히 사용되는 방법이 첫 번째 방법과 같은 임시변수 선언법이고 두 번째 방법과 같은 XOR 연산도 가끔 쓰이는데, 루비에서는 세 번째 방법대로 간편하게 스와핑을 구현할 수 있습니다. 다음 코드를 봅시다. a, b = 2, 3 # a에 2를, b에 3을 대입 puts sprintf("%s", [a, b]) # 출력 a, b = b, a # 스와핑 pu..

★프로그래밍/Ruby :: 2016.08.16 20:35

한글 완성자 분석하기

한글 완성자 분석하기

한글 완성자 분석 프로그램 예제입니다. 이 프로그램은 한글 완성자가 어떤 자모로 조합되어 있는지 (예를 들어 '한글'이라는 문자열을 받으면 '한'을 ㅎ+ㅏ+ㄴ으로 분석하고 '글'을 ㄱ+ㅡ+ㄹ로) 분석해서 화면에 표시하는 프로그램입니다. 이 프로그램은 UTF-8 인코딩을 이용합니다. # 초성, 중성, 종성 배열을 만들어 둠 choseong = ["ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"] jungseong = ["ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ..

★프로그래밍/Ruby :: 2016.08.13 23:16

피보나치 수열의 n번째 수 차례로 출력

피보나치 수열의 n번째 수 차례로 출력

피보나치 수열 프로그래밍 예제입니다. (피보나치 수열이란? 0, 1, 1, 2, 3, 5, 8, 13 ... 식으로 첫 번째 숫자와 두 번째 숫자를 합한 값이 세 번째 숫자이고 두 번째 숫자와 세 번째 숫자를 합한 값이 네 번째 숫자이고 이런 식으로 직전의 두 수의 합으로 이어 나가는 수열을 말합니다.)정보처리기능사 실기시험에도 가끔 나오는 프로그래밍 단골 소재이지요.여기서는 루비로 첫 번째 값부터 계속 출력되게 구현하였습니다. 또한, 0을 0번째 수로 정의하여 출력합니다.코드는 다음과 같습니다. # 피보나치 수열 출력 예제 fibo = [0, 1] # 피보나치 수열이 저장될 배열 f_dest = 50 # 몇 번째까지 구할지 정의 # 아래 두 줄은 0번째와 1번째를 미리 출력. puts "피보나치 수열의..

★프로그래밍/Ruby :: 2015.09.29 23:23

2차원 배열 처리 예제

2차원 배열 처리 예제

2차원 배열 예제입니다.루비에서는 aa = Array.new {Array.new} 이런 식으로 선언하면 2차원 배열이 할당됩니다. 물론 같은 방법으로 aa = Array.new {Array.new {Array.new}} 이렇게 써서 3차원 배열도 가능합니다.루비에서 2차원 배열은 배열 안에 배열이 들어 있는 것으로 구현됩니다. 즉, [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 이런 식이지요. 또한, 배열 안의 자료형이 모두 같지 않아도 됩니다. 예를 들어, [1, 2, "A", [1, "B"], 1.1] 이런 식으로도 가능합니다.여기서는 2차원 배열의 선언 예제와 배열 반복문 예제를 보여 드립니다. 배열 반복문은 for 문을 써도 되지만 끝까지 훑으려면 배열명.each do |저장변수| ..

★프로그래밍/Ruby :: 2015.09.21 21:09

자동 미로 생성 예제

자동 미로 생성 예제

루비로 구현해 본 자동 미로 생성 예제입니다.구현된 알고리즘은 깊이 우선 탐색법(DFS; Depth First Search)을 이용한 알고리즘입니다. 지정된 랜덤 방향으로 계속해서 뚫어 나가다가 더 이상 뚫을 수 없게 되면 뒤로 돌아가면서 뚫을 수 있는 곳이 발견되면 다시 뚫어 나가는 구조입니다. 깊이 우선 방식이므로 재귀호출을 이용합니다.이 방법으로 미로를 만들게 되면 항상 다음과 같은 특징을 갖게 됩니다. - 미로판 전체에 미로가 생성됨. - 미로판 어느 곳이든 이동이 가능함. - 특정 위치에서 특정 위치로 이동하는 문제에 대하여 단 하나의 해만 존재함.다음은 DFS 자동 미로 예제 코드입니다. # 자동 미로 생성 예제 (DFS) class Maze # 설정할 값 CHR_WALL = "■" CHR_E..

★프로그래밍/Ruby :: 2015.09.20 15:50
1 2 3
Today 24    Yday 68    Tot 71,745
Juwan Park
Juwan Park's blog is powered by Daum and TISTORY.
Contemporary Blue for TISTORY.
Designed by Juwan Park. Creative Commons License
▲ TOP