lcg2004   6년 전

10문제 탈출한 기념으로 씁니다.^0^

아마도 이런 글이 많이 있을텐데 찾지는 못하겠네요.

대부분 첨하시는 분들은 뭘 어떻게 하는지, 문제가 발생하면 뭐가 문제인지 파악하는데 시간이 걸릴 것 같습니다.

저는 java로 하는데 Main이라는 클래스를 사용하지 않으면 안되는데 그거 아는데 한참 걸린 것 같습니다.

저는 10문제 푸는데 몇달 걸린 것 같습니다. (아마도 늙어서 ^^;;)


그래서 다음과 같은 방법을 추천드립니다.

1. (10문제를 아직 못 푸신분들은)템플릿을 만든다.

import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
//투두 히얼................
        System.out.println(""+n);
    }
}


2.  (10문제를 아직 못 푸신분들은)10문제에 먼저 집중한다.

어려운 문제는 풀더라도 초보는 대부분 입력 값이나 출력하는 포맷 등에서 많이 걸러질 껍니다.

그래서 10문제 정도는 먼저 풀면서 이 사이트의 패턴을 먼저 익히는 것이 좋습니다.



3.  (10문제를 아직 못 푸신분들은 )입력검사는 (단지 테스트케이스의 범위라고 이해만 하고, 너무 신경써서 인풋값이 1000보다 작아야 한다거나 숫자 이외에 혹시나 컨트롤비, 백스페이스, 탭문자, 캐릭터셋이 다른 인코딩 등의 특수문자를 고려)하지 않는다. (아닐 수도 있으니 참고만 하시길)

a<=10000 이런거 검사하는데 시간낭비할 필요 없습니다.

적어도 제가 본 열문제 중에 그런거 명시되더라도 실제로 걸린적은 아직 없네요.


4.  (10문제를 아직 못 푸신분들을 위한 )메뉴 이해

-------주요메뉴--------

[문제]>[단계별로 풀어보기]
단계별로 풀수 있는 문제 그룹들의 목록이 있다.

-------서브메뉴-------
[9999번]
문제가 설명되어 있다.

[제출]
문제를 풀려면 여기서 제출한다.
(나는 이메뉴일거라고 생각을 못하고 자꾸 [풀이]메뉴를 뒤적거렸음..ㅠㅠ 나만그런가?)

[맞은사람]
[숏코딩]
[풀이]문제를 풀이할려고 여기 들어갈 필요는 없다. 다른사람의 해설을 보는 곳이다.
[풀이작성]문제를 풀이할려고 여기 들어갈 필요는 없다. 내가 맞춘문제의 해설을 작성하는 곳이다.
[풀이요청]
[재채점/수정]
[문제추천]

[채점현황]
다른 사람들의 제출하고 채점하는 이력인데,
공개안하는 경우가 대부분이지만, 단계별 문제는 공개된 경우가 많아서
나의 논리적인 문제점을 찾는것은 물론이고, 이 사이트의 시스템이 문제있는거 아닌가 하는 의심이 드는 경우 걍 복붙해서 바로 통과됨을 눈으로 확인할 수도 있다.
(현재 문제번호에 해당하는 것만 필터된 목록라 편하다)

[내소스]
제출했는데 틀렸을 경우, 답안을 여기서 수정할 수 있다.

[강의]

[질문검색]
제출했는데 틀렸을 경우, 여기서 나의 문제점을 찾을 수 있다.
(현재 문제번호에 해당하는 것만 필터된 목록임)

[질문작성]



5. (10문제를 아직 못 푸신분들을 위한 10문제를 아직 못 푸신분들에게만 해당되는 )10문제 탈출 최적의 절차

[9999번] 문제를 읽고

[제출] 코딩해서 제출해보고

맞았으면 종료.

[질문검색] 틀렸으면 공부 좀 하다가

[채점현황] 짜증나면 컨닝해서 사칙연산정도의 로직은 성공했음에도 불구하고 로직과는 상관없는 오류에 부딛혀 진행이 되지 않는다면 맞춘 사람의 입력/출력/표기법을 참고해서

[내소스] 다시 제출


실컷 써놓고 보니깐 초보가 이 글을 볼 수는 있으려나 하는 생각이...

jh05013   6년 전

당장은 아니더라도, 난이도가 올라가면 입력 범위가 커서 시간 초과가 나는 경우가 많아집니다. 이 때는 코드의 시간복잡도(코드가 돌아가는 데 걸리는 시간이 입력 크기에 비해 얼마나 증가하는지)와 효율적인 알고리즘이 필요해집니다.

문제 설명은 굉장히 쉬운데 입력 범위때문에 굉장히 어려운 문제가 되는 경우도 있죠...

cheetose   6년 전

다른 사람들의 코드를 보기 위해서는 우선 그 문제를 맞춰야합니다. 그와 별개로 다른 사람의 코드를 복붙하는 것은 실력 향상에 전혀 도움이 되지 않습니다.

chogahui05   6년 전

처음에는 구현 문제들을 연습하는 것도 좋겠더라고요.

의외로 빠르게 풀 수 있는 문제에서 막히는 경우도 상당히 많고요.

h0ngjun7   6년 전

글의 제목을 바꾸어야겠네요.

양심탈출 속성반 ^^*

chogahui05   6년 전

머리 좀 싸매다가 다시 와 보니..

짜증나면 베껴버려서 다시 제출한다는 팁도 있네요. 저도 글 정말 못 쓰는데..

이건 정말 아니라는 생각이 드네요.


이래서 어느 분이 싫어요 기능을 건의한 모양이네요.. 어휴..

jason9319   6년 전

이 글은 내리는게 좋을것 같네요.


3. 입력검사는 하지 않는다. (아닐 수도 있으니 참고만 하시길)

a<=10000 이런거 검사하는데 시간낭비할 필요 없습니다.

적어도 제가 본 열문제 중에 그런거 명시되더라도 실제로 걸린적은 아직 없네요.


=> input의 범위 확인은 PS에 있어서 핵심적인 부분인데 처음 접하시는 분들에게 혼동을 줄 수 있을 것 같아요.

lcg2004   6년 전


부정적으로 생각 하시는 분들이 많네요.ㅎㅎ

기초문제 열문제 풀어본 후기이다 보니 고수분들 보기엔 많이 부실하니 이해해 주시길~


a+b 계산하기 위한 10초를 제외하고, 엔터키 잘 못 넣어서 삽질한 59분50초가 의미 있을까요?

a+b 로직을 몰라서 과연 풀이 뒤적이는 사람이 몇명이나 될까요?

a+b 로직을 몰라서 과연 질문 올리는 사람이 몇명이나 될까요?

알고리즘이나 로직에 더 집중하기 위해서는 불필요한 시행착오는 줄이자는 의도였습니다.


어려운 문제풀이일수록 다 잠겨 있습니다. 감히 중/고수분들한테 알려드린 팁은 아니니 절대 따라하지는 마십시요~


lcg2004   6년 전

아참, 입력검사는 아마 여기 테스트도구가, TC(테스트케이스)의 입력범위를 그 범위로 입력한다는 거 같습니다.

(아마 틀린거 같음)


그리고, 2. 10문제에 먼저 집중한다. 이거 엄청 중요한데;;;;


h0ngjun7   6년 전

4 : 걍 복붙해서 바로 통과할 수도 있다.
5 : [질문검색] 틀렸으면 공부 좀 하다가
[채점현황] 짜증나면 컨닝해서
[내소스] 다시 제출

이게 진짜 고수라서 이상하게 느끼는거에요?

이걸 비정상이라고 보면 고수인건가요?

말도 안되는 소리를 왜 정성스럽게 늘어놓으세요 도대체...

1, 2, 3번 내용까지는 꽤나 괜찮았어요. 그런데 4번 5번은 비양심의 끝판왕인데 이게 지금 말이라고 써놓은거에요?

chogahui05   6년 전

불필요한 시행 착오가 어디 있어요..?? 아무리 쉬워 보이는 것이라도.. 

그게 불필요한 시행착오라고 생각하신다면.. 힘들어요.. 솔직하게 말해서..


빠르게 배우는 것도 중요한 데 짜보는 것도 중요하지요.. 진짜 시행착오 많이 겪으면서 배운 것 중 하나가..

# long long형 범위가 계산 과정에서 넘어가는 것은 어떻게 알아채지?

라는 것인데요..


물론 쉬울 수 있지만.. 대회에서 빡센 테스트 케이스가 들어오는 경우에는 #을 필요로 하는 경우가 생기더라고요.

대표적으로 8880번이라던지..


그게 남의 코드를 보고 베껴서, 다른 문제에 써먹을 수 있으면 좋은데..

한 번 영혼없이 베끼면.. 1퍼는 남을까 싶네요.


설령 남의 코드를 베꼈다고 쳐 봅시다.

그 코드가 필요한 다른 문제에서, 어? 이런 접근법으로 풀 수 있겠네?

하면서 자신의 입맛에 맞게 개조를 시켜보는 과정은 필요해요. 


그러니까 문제는 이렇게 주어졌고.. 조건이 이러하기 때문에

저번에 내가 가져왔던 코드로 제출해도 되는 거구나.. 혹은 안 되는데 왜 안 되는 거지?

저 문제와 이 문제는 비슷한 거 같은데. 왜 요 문제에선 안 되는지.. 모르신다면 물어보셔도 되고요.


그 과정에서 템플릿이 만들어 지는 것이지.. 공짜로 만들어지지는 않아요.

henry1214   6년 전

제목만 보고 뭔가 실질적으로 도움되는 내용인줄 알았더니.. 웬걸

1번은 프로그래밍을 배웠던 사람이라면 다들 기본적으로 아는 내용이겠고..

2번은 문제 계속 풀다보면 자연스레 10문제가 넘겠죠..? 차라리 쉬운문제부터 접해보라던가 구현이나 출력같은 문제부터 접해보라던가 라고 말하면 더 좋을 것 같네요

3번은 문제 풀때 꼭 확인해야 되는 부분이고.. 보통 범위를 보고 전역으로 배열길이를 정한다던가 하지 않나요? 자료형이 문제될 수도 있겠고요

4번은 사이트 좀만 익숙해지면 당연히 자연스러워 지는 부분이네요

5번은 윗분 말대로 문제를 맞춰야 다른사람 코드 볼 수도 있고요 설사 베끼더라도 카피해서 바로 제출하는게 아니라 그전에 이 사람이 어떻게 풀었는지 과정을 이해하고 내 스타일 대로 직접 생각해보면서 다시 짜보는게 좋겠죠! 답을 봐도 모르겠으면 시간을 두고 나중에 다시 보는 것도 한 방법이겠네요

junja   6년 전

저도 초보자지만 저렇게 하면서 성장하실려면 재능충이거나 엄청난 고수가 되어야합니다.

초보분들은 저처럼 질문하시거나 질문을 찾으시는게 좋을거 같네요 문제도 안어렵잖아요 ㅎㅎ..

남의 소스를 보고 모두 이해해 자기것으로 만들어 이용할 수 있는 능력...이 되신다면 복붙해도 되실듯..

보통 보셔도 자기 소스랑 비교하면서 자기소스를 바꾸는게 좋다고 생각합니다.

rlatkddn212   6년 전

컨닝한다란 말이 너무 양심없어보이니 다른 사람 풀이를 참고한다 정도가 좋지 않을까요. ㅎ

처음엔 남에껄 보고 풀어보기도 하고 혼자 끙끙대면서 풀기도 하는거죠. 

더 열심히 하셔서 좋은 글 써주세요. ^^

jh05013   6년 전

이 글 아직도 보이나요... 며칠 지나면 아무도 안 읽을 줄 알았는데 자유 분류로 들어가면 1페이지에 나오긴 하는군요.

댓글을 작성하려면 로그인해야 합니다.