오늘은 코딩을 해보았다.
Training 문제로 간단한 문제를 풀었다.


(Prime Factory 문제)



문제는 이렇다.
100만 이상의 숫자의 소수를 구한다.
그 소수의 합 또한 소수인 수를 구한다.

이런 소수를 2개 구한다.
그리고 이어주면된다.

예를 들어
1234567 과 2345678 을 구했다 치면
12345672345678을 답으로 적으면 된다.

이 문제를 풀기위해 소수의 합의 소수를 구해야해서
중복되는 코드가 있으므로 함수를 만들어서 사용했다.

첫번째로 만든 함수는 소수인지 판별하는 것이다.



(소수 판별 함수)



소수 판별 함수는
flag 변수를 두어서
만약 나누어지는 값이 발견되면 flag를 1로 주어 return하고
없다면 그대로 0으로 나간다.
즉 밖에서 보면 0이 나오면 소수이고 1이 나오면 소수가 아니다.


두번째로 구한 소수의 자릿수를 전부 더해주는 함수이다.



(자릿수 더하기 함수)



이 함수의 설명은 코드 보는 것과 같다.
각 자리수의 10의 거듭제곱으로 나누어 각 수를 더해서
return 한다.

이 두가지 함수를 이용해서
계산한다.

처음 시작은 100만으로 시작해서 하나씩 증가시키면서 검사한다.



(완성 코드)



두가지 변수에 가득 차면 반복문이 종료된다.



(실행 결과)



실행 결과를 복사 해서
정답에 넣으면!



(정답)



정답이 된다. :)

간단한 문제지만
30? 40분은 걸렸던거 같다..!

오랜만에 해서 그런가 보다
자주 해야겠다 :)



'WarGame > WeChall' 카테고리의 다른 글

WeChall - (Coding) Training: Programing 1  (0) 2017.01.26



Wechall 이라는 워게임 사이트가 있다.

여기서 여러 문제를 해결하면서 실력을 쌓을 수 있다.

오늘 풀이를 할 문제는 Coding 카테고리의 Training이다.



(Training: Programing 1 선택)



초록색으로 표시된 이유는 내가 한번 풀었기 때문에
초록색으로 표시된 것이다.

들어가보면



(문제화면)



문제를 보면 this link를 들어가서 받은 메세지를 다시 보내라는 뜻이다.

일단 this link에 들어가보자



(메세지)



메세지가 보인다.
이 메세지를 다시 보내라는 것이다.
어디로?

아래 드래그한 주소로!


(솔루션 보낼 곳)


뒤에 the_message부분에 우리가 받은 코드를 입력해서 전송하면 된다.

물론 시간제한이 1.337초 이므로 손으로는 불가능하며
네트워크 통신도 원활해야한다...

먼저 파이썬 챌린지에서 했던 urllib.request를 이용해 접근해보겠다.!




(??..)



url로 접속하니 로그인을 한 후
해당 쿠키로 접속을 해달라고 메세지가 왔다.

즉, 그냥 url만 보내면 안되고
접속했을 때의 쿠키값을 HTTP 헤더에 포함시켜서 보내야하는 것이다.!

와이어샤크로 나의 쿠키값을 확인해보겠다.



(쿠키값 확인)



와이어샤크로
나의 쿠키값을 확인 할 수 있다.

이제 이 값을 포함시켜서 url접속할 것이다.



(쿠키 추가)



쿠키를 추가한 모습이다.
그리고 code에 decode하여 우리가 원하는 문자열을 받았다.



(결과화면)



우리가 보내야할 코드가 잘 전달 되었다 :)

이제~ 이 값을 url 뒤에 붙여서 전송할것이다.



(답 전송)



전송 하고나서 수신된 메세지는 텍스트로 오기때문에 읽기가 힘들다...
그래서
와이어샤크로 확인을 해야한다.
와이어샤크로 확인!


(..?)



정답이다! 하지만,, timeout... 1.63초로..
현재 카페에서 하고있어서 빠르지 못했나보다..

다시 여러번의 시도를 한 후에야 통과했다. ( 네트워크가 빠른 곳에서 하는걸 추천한다.)



(정답화면)



나는 이미 한번 풀었기 때문에
이미 풀었던 문제라고 메세지가 돌아왔다.

문제 해결!


'WarGame > WeChall' 카테고리의 다른 글

WeChall - (Training) Prime Factory  (0) 2017.02.13

+ Recent posts