돌핀스튜디오에서 돌핀 라이브러리 (dolphinlib) 사용하기

2023. 7. 28. 13:05IT 정보

안녕하세요! 이 문서에서는 돌핀 라이브러리(dolphinlib)의 구조와 사용법을 알려드리고자 합니다.

 

 

> 1. 실행창에 이미지 띄우기 (show_img)

 

이런식으로 이미지를 띄우는 코드를 작성하시고 싶으시다면, 아래처럼 라이브러리를 사용하여 코드를 작성해주시면 됩니다.

 

[Python 언어]

import dolphinlib

dolphinlib.show_img('이미지경로 또는 파일명')

[R언어]

library(dolphinlib)

dolphinlib::show_img('이미지경로 또는 파일명')

이렇게 작성하면, 이미지 파일을 읽어들여 이미지 결과를 콘솔창에 띄우게 됩니다.

 

 

 

 

 

> 2.  이미지 출력 문제 채점하기 (테스트케이스 생성 및 채점) 

이미지 출력 문제의 테스트케이스를 생성하고 채점하시고 싶으시면, 아래의 단계를 따라주시면 됩니다.

 

 

파일 입출력 체크박스를 눌러주세요!

 

테스트케이스를 만들어주세요!

** 테스트케이스 생성시 주의하실 점

현재 R언어에서는 quiet = TRUE 파라미터를 넣어주지 않으면 
자동 결과 생성"Read Item" 이라는 문구가 나와 제출 결과와 일치하지 않을 수 있습니다.


방법 1) scan 함수에 quiet 를 넣어주시거나 (권장)

방법 2) 테스트케이스 출력값에서 Read Item 을 지워주세요!

 

# 현재 quiet = TRUE 파라미터를 넣어주지 않으면 
# 자동 결과 생성시 "Read Item" 이라는 문구가 나와 제출 결과와 일치하지 않을 수 있습니다.
# scan 함수에 quiet 를 넣어주시거나 테스트케이스 출력값에서 Read Item 을 지워주세요!

i = scan(file=fp, what=integer(), n=1, quiet = TRUE)

메모리 제한을 50MB 이상으로 높게 설정해주세요! (기본적인 R언어의 MB + 이미지 파일 크기 MB)

 

 

 

실습 예제) R언어로 산점도 plot 그리기

R언어의 경우 주로 통계 시각화에 특화되어 있다보니, 랜덤 값을 사용하게 되는데요

이미지 출력을 채점하기 위해서는 출력되는 랜덤 수를 고정시켜줘야 합니다.

set.seed(고정할 임의의 시드 값)

테스트케이스를 입력 받습니다.

# 테스트케이스의 입력을 받기 위한 코드입니다.
fp=file("stdin", "r")
i = scan(file=fp, what=integer(), n=1, quiet = TRUE)

이미지 저장을 위해 준비합니다.

png(filename=filename,width=350,height=350,unit="px",bg="white") 

plot 관련 코드를 작성하고, 난 후에 돌핀코딩에 이미지를 출력합니다.

# 돌핀 코딩에 출력합니다.
# 1. 위에서 png 코드로 plot을 이미지 파일로 저장하기
dev.off()
# 2. dolphinlib로 돌핀 코딩 실행창에 이미지 파일을 출력합니다.
library(dolphinlib)
dolphinlib::show_img(filename)

 

R언어의 전체 코드는 아래와 같습니다!

# ---------------- 사전 준비 ---------------- #
# 테스트케이스의 입력을 받기 위한 코드입니다.
fp=file("stdin", "r")
i = scan(file=fp, what=integer(), n=1, quiet = TRUE)

# 이미지를 저장을 위한 코드입니다.
filename = sprintf("myplot.png", i) 
# 생성할 파일명을 작성합니다.
png(filename=filename,width=350,height=350,unit="px",bg="white") 
# png로 출력합니다.

# ---------------- 코드 시작 ---------------- #
set.seed(123)
# 테스트케이스 검사를 위해 랜덤 seed 값(rnorm)을 고정시키는 코드입니다.

# x 와 y 로 산점도를 그려보세요
x <- c(1:100)
y <- x + rnorm(100, i, 3)

# plot 을 출력합니다.
plot(x, y, main="My plot",xlab="x",ylab="y")

# ---------------- 돌핀 코딩 출력하기 ---------------- #

# 돌핀 코딩에 출력합니다.
# 1. 위에서 png 코드로 plot을 이미지 파일로 저장하기
dev.off()
# 2. dolphinlib로 돌핀 코딩 실행창에 이미지 파일을 출력합니다.
library(dolphinlib)
dolphinlib::show_img(filename)

 

 

현재는 Python과 R언어만 지원하고 있지만, 다양하게 업데이트 될 예정이며 더 나은 서비스를 제공하기 위해 노력하겠습니다 :)

 

필요한 기능이나 개선사항, 버그등이 있다면 언제든지 문의주세요!! (team@eduenv.com)