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

'★프로그래밍'에 해당되는 글 40

  1. 2015.09.21 2차원 배열 처리 예제
  2. 2015.09.20 자동 미로 생성 예제
  3. 2015.09.19 alias 문의 유용한 쓰임
  4. 2015.09.18 소인수분해 프로그램 예제
  5. 2015.09.17 체스판식 등차수열 채우기 예제
  6. 2015.09.17 2차원 배열 ㄹ자로 등차수열 채우기 예제
  7. 2015.09.15 모래시계 배열 예제 (정중앙부터 채우기) 1
  8. 2015.09.14 루비 행맨게임 코드 예제
  9. 2015.09.13 배열 1, 2, 3, 4 ...에서 랜덤 숫자 배열 추출 예제
  10. 2015.09.12 프로그래밍 언어 루비(Ruby)

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. 9. 21. 21:09

자동 미로 생성 예제

자동 미로 생성 예제

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

★프로그래밍/Ruby :: 2015. 9. 20. 15:50

alias 문의 유용한 쓰임

루비의 명령문 중 alias 문이 있습니다. alias라는 단어의 사전적 의미를 보면, 부사로 쓰일 땐 '~라는 가명으로 알려진, 일명 ~라 불리는'의 뜻으로, 명사로 쓰일 땐 '(범죄자 등의) 가명'의 뜻으로 쓰입니다. 전산 용어로 쓰일 때는 '파일·인터넷 주소 등에 쓰이는 가명'을 뜻합니다. 루비에서 alias 문은 def 문으로 정의된 프로시저의 별칭을 지정할 때 사용되는 구문입니다. 루비에는 alias 말고도 alias_method 문도 있지만 여기선 일단 alias만 간단히 설명하기로 합니다. 다음 예제를 봅시다. def helloworld puts "Hello, world!" end alias hello helloworld hello 이 코드에서 1번 줄부터 3번 줄까지는 "Hello, wor..

★프로그래밍/Ruby :: 2015. 9. 19. 18:16

소인수분해 프로그램 예제

소인수분해 프로그램 예제

루비의 반복문과 조건문을 응용하여 만든, 합성수를 소인수분해하는 프로그램 예제입니다.예제에 앞서 소수와 합성수의 개념을 먼저 설명드리고자 합니다. 여기서 소수는 0.1, 0.5 이런 소수(小數)가 아니라 합성수와 반대되는 개념입니다. (한자로는 素數라 쓰는데 예전에는 小數와 구분하기 위해 '솟수'라고 표기하기도 했습니다. 여기서 말하는 소수를 '소쑤/솓쑤'라고 읽는 이유도 여기 있습니다.) 어떤 자연수 n을 다른 자연수 a로 나누었을 때 나머지가 0라고 한다면, a는 n의 약수가 됩니다. 즉, 6의 약수는 1, 2, 3, 6이 됩니다. 여기서 약수 중 자기 자신을 제외한 약수를 진약수라고 부릅니다. 앞에서 예로 든 6의 진약수는 6을 제외한 1, 2, 3입니다.이제 소수와 합성수를 설명합니다. 소수는 2..

★프로그래밍/Ruby :: 2015. 9. 18. 15:38

체스판식 등차수열 채우기 예제

체스판식 등차수열 채우기 예제

모래시계 배열, ㄹ자 배열에 이어 이번에는 체스판식 배열로 등차수열 채우기 예제입니다. 말 그대로 배열 값을 채우는 예제입니다. 예를 들어, 위 그림의 체스판처럼 배열을 8*8로 했다고 가정하면, 일단 위 그림의 밝은색 칸에 해당하는 자리부터 먼저 채웁니다. 우선, 왼쪽의 흑색 룩(♜)이 있는 자리는 1, 그 다음 한 칸 건너 왼쪽 흑색 비숍(♝)이 있는 자리는 2, 또 그 다음 한 칸 건너 흑색 킹(♚)이 있는 자리는 3, 또 그 다음 한 칸 건너 오른쪽 흑색 나이트(♞)가 있는 자리는 4가 들어갈 것입니다. 그런 다음 한 줄 내려서 이번에는 왼쪽에서 두 번째 칸에 있는 폰2(♟)에는 5, 폰4에는 6, 폰6에는 7, 폰8에는 8 이런 순서로 채워나가면 나중에는 맨 마지막의 오른쪽 백색 룩(♖)이 있는..

★프로그래밍/Ruby :: 2015. 9. 17. 14:58

2차원 배열 ㄹ자로 등차수열 채우기 예제

2차원 배열 ㄹ자로 등차수열 채우기 예제

모래시계 배열에 이어 이번에는 ㄹ자로 배열 값을 채우는 예제가 있습니다. 이 알고리즘 역시 정보처리기사 기출문제 중에 있습니다. 이것을 루비로 한 번 구현해 보았습니다. 5*5 배열에 적용했을 때 출력될 결과를 미리 그려 보면 다음과 같습니다. 12345 109876 1112131415 2019181716 2122232425 아래 예제는 이를 10*10 배열에 적용했을 때 예제입니다. # ㄹ자 모양으로 값 채워넣기 예제 # # 규칙 # ㉠ 배열의 맨 처음 위치에는 1을 대입합니다. # ㉡ 그리고 그 오른쪽으로는 2, 3, 4, 5 ... 순으로 한 칸씩 채워 나갑니다. # ㉢ 그 다음 줄은 ㉡에서 채워진 숫자의 다음 숫자를 오른쪽부터 채웁니다. # ㉣ ㉢의 다음 줄은 왼쪽에서부터, 그 다음 줄은 오른쪽에..

★프로그래밍/Ruby :: 2015. 9. 17. 00:04

모래시계 배열 예제 (정중앙부터 채우기)

모래시계 배열 예제 (정중앙부터 채우기)

프로그래밍 예제로 배열을 맨 위와 맨 아래는 꽉꽉 채우고 가운데로 갈수록 양 끝을 비워놓은 모래시계 모양으로 뿌리는 예제가 있습니다. 정보처리기사와 정보처리산업기사 실기 알고리즘에도 실제로 출제된 바 있습니다. (정보처리기능사 실기에서도 출제됐는지는 잘 모르겠습니다만...) 흔히 맨 위에서부터 1, 2, 3, 4, 5... 이런 식으로 대입하는 예제가 흔하지만 여기서는 정중앙에 1을 대입하고 그 자리를 중심으로 점점 값을 1씩 크게 해서 위 아래 위 위 아래 EXID 노래와는 상관없습니다. --; 이런 식으로 대입하는 식으로 구현했습니다. 즉, 7*7 배열에서는 다음과 같이 됩니다. 18192021222324 0891011120 0023400 0001000 0076500 017161514130 31302..

★프로그래밍/Ruby :: 2015. 9. 15. 19:49

루비 행맨게임 코드 예제

루비 행맨게임 코드 예제

루비로 짠 행맨게임 코드 예제입니다. 필자가 중학교 때 영어수업시간에 했던 게임 중 하나로, 영어 단어를 한 글자씩 맞히고 틀리면 교수형 당하는 사람 그려지는 그 게임 맞습니다.여기서는 루비의 문자열 값을 다루기 위한 예시로 행맨게임을 이용했습니다.코드는 다음과 같습니다. def init # 문제를 출제할 배열 @q_list = ["KOREA", "ENGLAND", "FRANCE", "GERMANY", "ITALY", "SPAIN", "DENMARK", "SWEDEN", "PORTUGAL", "NORWAY", "FINLAND", "POLAND", "CZECH", "AUSTRIA", "ICELAND", "BELGUIM", "NETHERLANDS", "UNITED STATES", "CANADA", "MEXI..

★프로그래밍/Ruby :: 2015. 9. 14. 14:57

배열 1, 2, 3, 4 ...에서 랜덤 숫자 배열 추출 예제

Ruby의 배열 기능 중 정렬 기능과 섞기 기능을 활용한 예제입니다.마치 로또복권처럼 1부터 45까지 45개의 숫자가 들어 있는 배열을 무작위로 섞은 후 그 배열에서 6개의 숫자를 추출해 배열을 만들고 출력할 때 보기 좋게 하기 위해 랜덤으로 선택된 6개의 숫자가 있는 배열을 오름차순으로 정렬하는 예제입니다.다음은 이를 구현한 코드입니다. n_max = 45 #전체 숫자 수 n_sel = 6 #고를 숫자 수 n_times = 5 #고를 횟수 d = [] for i in 1..n_max d.push i #숫자를 1부터 차례대로 넣기. end for i in 1..n_times #고를 횟수만큼 반복 d.shuffle! #숫자 섞기. nn = n_sel - 1 #고를 숫자 수에서 1 빼기. d_sel = d[..

★프로그래밍/Ruby :: 2015. 9. 13. 23:04

프로그래밍 언어 루비(Ruby)

프로그래밍 언어 루비(Ruby)

프로그래밍 언어 루비(Ruby)를 시작해 봅시다.루비(Ruby)는 일본의 컴퓨터 과학자 마츠모토 유키히로(松本行弘; Mats)가 창시한 프로그래밍 언어로, 사용하기 쉽고 편하게 만들어져 있습니다. 객체 지향적이고 확장성이 매우 좋다는 특징이 있어 웹 서버 등 여러 곳에서 널리 쓰이고 있습니다. 루비 온 레일즈(Ruby on Rails)가 바로 루비를 기반으로 한 웹 애플리케이션 프레임워크입니다. RPG 만들기 XP와 VX, Ace에서 사용하는 스크립트 또한 루비로 되어 있습니다. 필자가 학창시절에는 BASIC이라는 프로그래밍 언어를 많이 다루어 보았는데, 루비의 언어 구조가 BASIC과 비슷한 면이 있습니다. 물론 문법은 차이가 있습니다. 공통점이 있자면 인터프리터(Interpreter; 코드를 단계적으..

★프로그래밍/Ruby :: 2015. 9. 12. 21:58
1 2 3 4
Today    Yday    Tot
Juwan Park
Juwan Park's blog is powered by Daum and .
Contemporary Blue for .
Designed by Juwan Park. Creative Commons License
▲ TOP