[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 Algorithm인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Algorithm인 게시물을 표시합니다. 모든 게시물 표시

2016년 8월 4일 목요일

[JAVA] 알고스팟 초보 MERCY..

알고스팟을 둘러본 후 초보자용 문제부터 보기로 했다.. 아무래도 이런 코딩 테스트가 처음이니 차근 차근 해볼 요량으로 말이지..

첫 문제는 MERCY 였는데 문제를 풀기도 전에 문제가 생겼다.. 문제가 영어였다.. 간단하게 해석은 가능하긴 하지만 그래도 문제를 제대로 이해를 못하면 푸는것은 엄두도 안나기 때문에 구글에 문제명으로 검색을 해보니 다행히 많았다.. 그래서 답은 당연히 안보고 그 상단에 있는 설명만 우선 찬찬히 읽어보고 복사해서 문제에 붙였다.. 그래야 한 눈에 볼 수 있으니까 말이지..

다음부터는 위와 같은 넋두리는 안하려고 한다.. 그럼 본격적으로 문제를 보도록 하자.. 아래가 원문이다.. 링크를 할 수도 있지만 나중에 사이트 링크 및 공개여부가 어찌 될지 모르니 핵심 부분만 가져오기로 했다..

문제
The administrators of algospot.com are so merciful, that they prepared really, really easy problem to prevent contestants from frustration.

입력
Input contains just one positive integer N(N <= 10).

출력
Print N lines. Every line should contain 'Hello Algospot!'(quotation marks for clarity) and nothing else.

위 문제에 대한 나의 정답 소스코드이다.. 물론 내가 정답이라는게 아니고, 문제 제출 했을 때 정답이 되었다는 것이다.. ㅎㅎㅎㅎ...

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;

public class MERCY {

 //10이하의 자연수(N)를 입력하면(N<=10)
 //Hello Algospot!  을 입력한 자연수 만큼 출력[라인수를 의미 글자수가 아님]하는 프로그램..
 
 public static void main(String[] args) {
  
  //int inputNum = 2;
  Scanner sc = new Scanner(System.in);
  int inputNum = sc.nextInt();

  if(inputNum > 10) {
   return;
   
  } else {
   for(int i = 0; i < inputNum; i++) {
    System.out.println("Hello Algospot!");
   }
  }
 }
 
}//

다음은 실제 위 문제 제출에 따른 답안결과..?? 이다.. 다음 글부터는 붙여서 그냥 세트로 올릴것이다..
















보면 빨강색으로 표시한게 내가 제출한 것인데 여기서 나처럼 처음 코딩 테스트라는 것을 해보는 사람들이 조심해야 될 것이 있다.. 필수니까 꼭 할 사람들은 숙지를 해야된다..

나도 물론 튜토리얼 읽었다.. 하지만 실수를 그냥 여러번.. 하더라는.. ㅋㅋㅋ..

1.. class 명칭은 무조건 Main 으로 해야된다.. 나도 몇 번 실수를.. 현재 MERCY 라고 되어 있는 클래스명을 제출할 때는 바꿔야된다..

2.. 소스 복사해서 붙여 넣을 때 package 를 제외한 import 부터 싹 복사해서 제출해야 된다..

3.. 위 소스의 11, 12 라인에 있는 아래 부분은 입력값이 되므로 꼭 넣어줘야 오답 처리가 안된다..

Scanner sc = new Scanner(System.in);

int inputNum = sc.nextInt();

4.. 괜히 잘나보이려고 문제에서 원하는 범주 이상의 것을 할필요가 없다.. 딱!!! 문제가 원하는 만큼만 출력이 되도록 하면 된다..

대충 이정도이다.. 아마 앞으로도 오답은 꽤 나올것이다.. 하지만 이런 과정속에서 배우게 되는 것이니.. 첫 문제풀이치고는 아주 기분이 상콤하고 좋다.. ㅎㅎㅎ..

[Tool] 이클립스 네온 다운받기..

면접을 보고 난 얘기를 하고서 바로 뒤이어 포스팅을 또 한다.. 이번 글은 이클립스 네온 다운로드 및 Hello World 출력 하는것이다.. 다만, 시점이 시점인 만큼 Hello World 출력하는법 자체는 설명하지 않을 것이다.. 나도 오랫만에 이클립스를 다운로드 받다보니 혹시라도 다운로드 하는 곳이나 어떤 것을 받을지 고민하시는 분이 있을 수 있어서 올려본다..

이클립스를 왜 받느냐.. 알고스팟에서 알고리즘 테스트를 하고 하려면, 우짜든둥 툴이 있어야 될거 아닌감..??!! 그래야 코딩을 하지.. ㅋㅋ 그래서 해당 포스팅을 하게 된 것이다..

무튼..!! 우선은 이클립스 사이트를 간다.. 네이버누님에게 이클립스 내지는 eclipse, eclipse neon 으로 검색을 하면 아래처럼 보일 것이다.. eclipse 사이트로 이동한다..






사이트를 이동하면, 아래처럼 보일 것이다..













빨강색으로 표시한 부분을 클릭하면 실제 다운로드 페이지로 이동한다..

















빨강색 표시한 부분을 클릭하면 되는데 우측 하단을 보면 본인 운영체제에 대한 bit 표기가 있다.. 32 bit 인지 64 bit 인지 확인해서 잘 다운 받으면 된다..











위처럼 다운을 받아서 압축을 풀고 실행 시키면 되는데.. 난 기본 프로젝트를 생성해서 Hello World 를 간단히 타이핑 후 실행[Ctrl + F11] 시켜봤다.. 

















모두들 잘 되겠지..?? 이건 진짜 클릭 클릭만 하면 되는거니까.. ㅎㅎ 이제 알고스팟에 가서 회원가입도하고, 사이트도 좀 둘러보고, 코딩 테스트도 샘플로 해보고 해야겠다.. 혹시라도 내가 들어간게 알고스팟이 맞는건가..?? 하는 분들을 위해서.. 사이트 진입페이지 남겨드린다.. 참!!! 코딩 테스트 후 내가 한것을 공부도 할겸 정리도 할겸 포스팅 할 계획이다.. 후훗..

















2016년 2월 29일 월요일

[DEV]소팅(Sorting) 알고리즘 애니메이션 비교사이트..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

WebAppers에서 "Showing How Each Sorting Algorithm Operates"라는 재미난 사이트 소개가 있어서 공유합니다. 이 사이트는 소팅(Sorting) 알고리즘을 여러가지 상황별로 어떤식으로 동작하고 성능에 어떤 차이가 있는지를 시각적으로 보여주는 사이트입니다.

학생때 정렬에 대해서 배우느라고 고생했던 기억이 납니다. 전산과를 나오셨으면 모두 그런 기억은 있을듯 합니다. 저는 학생때는 워낙 공부를 안해서 더 고생했었는지는 모르겠네요. 소팅하면 버블정렬, 삽입정렬, 머지정렬, 퀵정렬들 많은 알고리즘들이 있고 현업에 와서는 실제로 정렬을 구현한다거나 할일은 별로 없었기는 하지만 그래도 알고 있으면 도움이 되지 않을까 합니다. 시간 지나면 이름만 기억나고 어떤 방식인지가 잘 기억안나기도 하는데 그럴때 도움이 될 듯 합니다.

Sorting Algorithm Animations라는 사이트입니다.

정렬 알고리즘 애니메이션 사이트 화면

사이트의 캡쳐화면입니다. 처음엔 보고 무엇인가 했습니다. 가로축에는 각 정렬 알고리즘들이 있고 세로축에는 데이터가 정렬된 방식이 있습니다. 각 셀을 선택하거나 아니면 비교를 하려면 각 줄에 있는 화살표 아이콘을 클릭하면 각 알고리즘이 정렬되는 알고리즘을 볼 수 있습니다.  상단에서 데이터의 양이나 속도등을 조절할 수 있고 애니메이션을 시작하면 화살표가 왔다갔다 하면서 정렬 알고리즘이 어떤 식으로 정렬을 수행하는지를 볼 수 있고 동시에 진행시키면 어떤 알고리즘이 어떤 상황에 적합한지도 비교해 볼 수 있습니다.

뻔하긴 하지만 이 사이트의 결론은 "There is no algorithm that has all of these properties, and so the choice of sorting algorithm depends on the application."이군요. 상황에 따라 알아서 알고리즘을 써라. 군요.. ㅎ

정렬 공부하실 분은 참고하시면 좋을 듯 하네요.