상세 컨텐츠

본문 제목

[개발] 코딩 테스트로 SW 실력을 높여 보자 - 구름레벨(GoormLevel)

개발 이야기

by IT/머신러닝 엔지니어의 독서/경제/육아 공부 리치윈드 - windFlex 2021. 5. 18. 15:10

본문

반응형

관련글

2020.05.09 - [개발 이야기] - 온라인 IDE - 개발 환경 구축 없어 어디서나 웹브라우저로 개발하기

2020.12.16 - [분류 전체보기] - 피보나치(Fibonacci) 수열 구현 7가지 방법 - 파이썬 실습/확인 바로하기

2020.04.30 - [개발 이야기] - 코딩시험 대비 - 웹 IDE(구름IDE)로 개발(Coding)환경을 구축해 보자.

2020.06.04 - [개발 이야기/Python] - [파이썬] Anaconda x Jupyter notebook 설치 및 설정 방법 - 가상환경으로 파이썬 개발환경 구성

 

 

 

구름  코딩 테스트 소개 

 

SW개발과 코딩 역량이 더욱 중요해 지는 요즈음, 여러가지 언어에 대한 개발/테스트 환경이 중요한 요소가 되었다. 물론, 본인의 PC/데스크탑에 구축해서 사용하면 되긴 하는데, 때때로 자신의 환경에 접속하기 어려운 경우가 존재한다. 또는, 원격지에서 접속하는 경우 등에 해당이 되겠다. 물론, 입사 시험등에서 코딩 테스트 또한 원격지 환경 중 하나라 할 수 있다. 

비단, 개발환경에 대한 이슈가 아니더라도 코딩 테스트를 앞 둔 사람이라면, 해당 환경들에 대해서 익숙해질 필요가 있다. 알고리즘 개발을 못해서가 아니라, 환경이 익숙하지 않아서 시간만 보내다가 반도 못풀고 종료하는 경우는 어렵지 않게 들을 수 있기 때문이다. 

 

이러한 이유로, 국내 코딩 테스트 환경으로 주로 사용되는 "구름레벨"에 대해서 소개하고자 한다. 

구름레벨 (GoormLevel)은  난이도별 다양한 문제를 해결함으로써 SW역량을 향상 시킬 수 있다.  https://level.goorm.io

 

구름LEVEL

코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이

level.goorm.io

SNS 로그인을 지원하기 때문에, 카카오,네이버, 구글 등의 계정을 가지고 있다면, 별다른 어려움 없이 1분내에 가입하여 사용할 수 있다. 

 

구름(GoormLevel) 시작 화면 

 

구름레벨 문제 풀이 소개

 

문제를 하나 선택하여 코딩테스트를 진행해 보자. "3의 배수"라고 검색해 보자. 

구름레벨 코딩 문제 풀이 화면

 

그림과 같이 실제  레벨 테스트를 열어보면, 문제의 배경을 설명, 입출력 조건 설명하는 좌측 영역과, 실제 코드를 작성하고 코드를 실행 하는 영역으로 나뉘어 있다. 

 

기본적으로 코드는 입력 값과 결과값을 매칭하는 방식으로 코드를 테스트한다. 따라서, 코드의 초기 샘플은 입력값을 받아서 출력하는 기본적인 샘플코드가 작성되어 있다. 다음은 C언어의 기본 코드이다. 

#include <stdio.h>
int main() {
char input[100];
scanf("%s",input);
printf("Hello Goorm! Your input is %s",input);
return 0;
}

 

코드 영역의 위쪽 메뉴를 보면 언어를 선택할 수 있는 Drop-Down버튼이 있다. 버튼을 눌러서 Python3으로 변경해 보자. 아래는 Python3의 샘플 코드이다. (간결하다. ^^)

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
user_input = input()
print ("Hello Goorm! Your input is " + user_input)

 

 

샘플 문제 풀이 - 369게임

 

자 이제.. 이 만큼 알아 보았으니, 겸사 겸사 해당 문제를 풀어보며 익숙해 져 보도록 하자. 

샘플 문제 : 3의배수 문제 풀이 화면

3,6,9 게임을 코딩으로 표시하라는 이야기인듯 합니다. 

 

문제에 대한 설명이 잘 이해가 안된다면, 입출력의 예시를 잘 살펴 보기 바란다. 최종 답변을 제출할 때, 이 예제와 정확히 일치해야 문제해결 처리로 한다. 특히, 마지막 띄어 쓰기에 주의 하기 바란다. 가장 단순한 생각은 Loop를 돌면서 3의 배수마다 “X” 표기 하는 방법이다. 

코드 예제

user_input = input()
a = " ".join([ str(x) if (x%3)!=0 else "X" for x in range(1,int(user_input)+1) ])
print(f'{a} ')

 

코드영역에서 자신의 코드를 작성하고, 우측 상단의 메뉴중에 실행 버튼을 눌러주면 된다. 

실행 메뉴(좌측), 실행 결과 (우측)

 

우선 실행 결과를 확인해 본다. 실행 버튼을 누르면, input() 함수에 따라 사용자 입력을 대기하고 있다. 예제처럼 “10”을 입력해 보면 하단에 “실행결과"창에 실행결과가 출력되는 것을 확인 할 수 있다.

코드를 모두 작성했다면, 우측 상단 메뉴에서 “테스트"를 눌러서, 여러 입력값에 대하여 동일한 결과가 출력되는지를 확인한다. 테스트 결과가 정상이라면, “제출"버튼을 눌러서 레벨을 마무리 할 수 있다. 

테스트를 누르면, 테스트 케이스에 대하여 실행하고 예상된 답과 일치하는지 여부를 점검해 준다. 

 

주의 사항

 

여기서 몇가지  "중요한" 주의 사항이 있다. 

  1. 입력값은 문자열이기 때문에 숫자가 입력된다면 형변환이 필요하다. 
  2. 최종 출력값은 공백을 포함하여 정확히 일치해야 한다. 구름의 경우는 마지막 문자열 뒤에도 “공백"문자열이 포함되어 있기 때문에 이 부분을 꼭 처리 해 주어야 한다. 
  3. 배열/리스트 자체를 출력하는 것은 원하는 결과값과 정확히 일치하지는 않는다는 점에 유의해야 한다.

이번 샘플의 3,6,9 게임 문제를 살펴볼 때 다음과 같이 입력하면 된다.  (위에 샘플에도 써 놨지만, 다시 표기한다.)

user_input = input()
a = " ".join([ str(x) if (x%3)!=0 else "X" for x in range(1,int(user_input)+1) ])
print(f'{a} ')

 

  • user_input은 문자열 이기 때문에 int(user_input)을 통하여 형변환을 해 주었다. 
  • 배열 자체보다는 문자열로 표기하기 위해서 “ “.join()을 사용하여 리스트에서 문자열 변환을 해 주었다. 
  • 최종 출력 결과 뒤에 공백을 명시하였다. 

이 점을 간과하면, 알고리즘과 무관하게 정상 동작하지 않는 것을 알아보다가 시간이 다 갈것이다. 항상 그렇듯이 시험장에서는 여유가 없기 때문에 예상외의 에러를 만나면 당황한다. 따라서 이러한 부분에 익숙해질 필요가 있다. 

 

관련글

 

2020.05.09 - [개발 이야기] - 온라인 IDE - 개발 환경 구축 없어 어디서나 웹브라우저로 개발하기

2020.12.16 - [분류 전체보기] - 피보나치(Fibonacci) 수열 구현 7가지 방법 - 파이썬 실습/확인 바로하기

2020.04.30 - [개발 이야기] - 코딩시험 대비 - 웹 IDE(구름IDE)로 개발(Coding)환경을 구축해 보자.

2020.06.04 - [개발 이야기/Python] - [파이썬] Anaconda x Jupyter notebook 설치 및 설정 방법 - 가상환경으로 파이썬 개발환경 구성

 

반응형

관련글 더보기

댓글 영역