목록프로그램/Python (22)
Brise
문제 풀이 상 깊이/너비 우선 탐색 유형으로 풀이되는 문제이다. 내가 풀은 방법은 아래와 같다. def solution(n, computers): answer = 0 visited = [0] * n def dfs(i): nonlocal answer visited[i] = 1 for n, c in enumerate(computers[i]): if c == 1: if 0 == visited[n]: visited[n] = 1 dfs(n) for i in range(n): if visited[i] == 0: dfs(i) answer+= 1 return answer통상 깊이우선탐색을 사용할 때는 스택을 사용하고, 너비우선탐색을 사용할 때는 큐를 사용하는데 이 부분이 현재는 익숙하지가 않아 재귀문법으로 풀이하였다...
새로운 페이지에 들어가면 다음과 같은 파일을 볼 수 있다. 제목은 'connect the dots'로 나와 있는데 거의 당연하게도 사진에 나와 있는 선들을 연결하면 아무것도 연상되지 않는다. 흠... 그렇다면 일단 소스를 보자. 소스를 보니 이전 단계들의 솔루션을 어떻게 접근 가능한지 설명한 주석이 있다. 페이지로 들어가보면 여러 언어로 해결한 솔루션들이 제시되어 있는데 페이지 맨 아래단에 보면 문제에서 그림으로 나와져 있는 벌 모양을 어떻게 그리는지 코드가 설명되어 있다. 위 코드를 실행시켜주면 ** 주 : ID와 PW를 입력 한 뒤 솔루션을 보기 위해서는 pc를 pcc로 바꾸는 것 뿐만 아니라 주소에 ID와 PW를 넣어주어야 한다. 형식은 아래와 같다.http://[ID]:[PW]@www.python..
맨 처음 접속하면 벌이 꽃 위에 있는 그림이 보인다. 잘 관찰하다 보면 벌을 클릭 할 수 있다는 것을 알 수 있다. 벌을 클릭하게 되면 아이디와 비밀번호를 요구하게 된다. 아이디와 비밀번호에 대한 힌트는 소스코드에서 얻을 수 있는데,소스코드에 주석처리된 부분을 보면 다음과 같음을 볼 수 있다. 보게 되면 (아마도) un이 아이디이고 pw가 비밀번호일 것이라는 것을 예측 할 수 있다. 페이지의 힌트는 where is the missing link? 라고 쓰여져 있고, 소스코드 상의 맵의 이름은 notinsect이다. 1. bee? buzz? 벌은 버즈 하고 운다. 2. BZh91AY 를 구글링 해보면.... 이러한 이유로 bz 압축을 풀면 답이 나올 것임을 예상 할 수 있다. bz2 패키지를 이용하여 코딩..
파이썬을 사용하다 보면 print 구문을 많이 사용하게 된다. 숫자를 프린트 할 때에는 print num 과 같이 간단하게 사용할 수 있지만, 다른 문자열과 같이 프린트 할 때에 print "str" + num 과 같이 사용하면 에러가 나게 된다. 이 때 문자열과 숫자를 같이 프린트 할 수 있는 방법은 다음과 같다. 123456 num = 123 print "use str : " + str(num)print "use backquote : " + `num`print "use : %d" %(num)cs 실행한 결과는 다음과 같다. use str : 123use backquote : 123use : 123 주의할 점은 5번째 줄에서 사용한 `는 작은 따옴표가 아니라 숫자 1왼쪽에 있는 기호 `이라는 점이다. ..
파이썬 생존 안내서 (자막) from 흥섭 이 인터넷에 '파이썬 생존 안내서' 라는 파이썬을 접하기에 매우 좋은 슬라이드가 있어 내용의 극히 일부분만을 발췌하여 올립니다. 내용 요약에 포함되지 않은 유익한 내용들도 매우 많기 때문에 읽어보는 것을 권합니다. * 참고 : 페이지가 700장이 아니라 내용 스크립트 때문에 700 장으로 보이는 것이기 때문에 읽는데 많은 시간이 걸리지 않습니다. 파이썬 생존 안내서 정리 import this class Example(object): passdef example(): return Example() print 'Hello, world' 모듈, 클래스, 메소드 등을 가지고 있으며 메소드 내부가 아니라도 함수 실행이 가능함. for x in numbers: if 2< ..
페이지에 들어가면 또 불친절하게 사진 한장만이 덜렁 있다. 강가의 사진을 보여주는데 중간헤 회색 바로 색깔이 변하는 것을 알 수 있다. 직감적으로 이미지를 받아 분석하면 답을 얻을 수 있다고 생각이 든다. 이미지를 읽고 편집하기 위해서는 파이썬의 PIL 패키지를 사용하여야 한다. $pip install PIL 을 입력하여 패키지를 설치한다. urllib을 이용하여 사진을 다운로드 받는다. 중간에 회색들을 읽기 위하여 대략적인 수도 코드를 구상해보자. 사진 불러오기 -> 세로를 검색하며 처음 회색인 픽셀 찾기 -> 가로로 픽셀들을 읽어 색깔이 달라지는 경우를 포착하여 가로값 읽기-> 회색이 아닌 픽셀이 아닐 때까지 읽어 값을 리스트로 정리하기 -> 데이터 분석 회색 값들을 읽기 위한 사각형의 위치를 알기 ..
처음 들어가게 되면 웹 페이지 제목에 "now there are pairs"라고 적혀있으며, 그림에 검은 바지에 지퍼가 반쯤 열려 있는 것을 볼 수 있다. 좀 더 자세한 힌트를 보기 위해서 페이지 소스를 보자. 소스에 주석으로 zip이라고 되어 있음을 알 수 있다. 예측컨데 제목의 힌트로 이제 "쌍"으로 존재하고 주석에 zip이라고 되어 있는 것을 보아 같은 페이지 이름을 가진 zip파일이 있음을 예상할 수 있다. channel.zip 파일을 받아 압축을 풀어주면 많은 숫자 텍스트 파일과 readme.txt가 있는 것을 볼 수 있다. readme.txt의 내용은 다음과 같다. welcome to my zipped list. hint1: start from 90052hint2: answer is insid..
이전 문제들과 마찬가지로 문제에 들어가면 딸랑 사진 한장이 있는 것을 볼 수 있다. 힌트는 "발음해 보아라...?" 라고 적혀 있다. 조금 더 힌트를 보기 위하여 F12를 눌러(크롬 기준) 소스 코드를 보도록 하자. 소스 코드를 보면 위 사진이 peakhell 인 것을 볼 수 있으며 소스로 "banner.p"파일이 제공 되는 것을 알 수 있다. (언덕은 hill 인데... 왜 hell이라고 되어 있는지 당최 알 길이 없다... 조금더 발음이 비슷한 것을 찾기 위함인 걸까??) peakhell의 발음이 비슷한 것을 찾으라는 힌트가 주어졌다. 마침 파이썬에서 pickle이라는 리스트, 튜플, 사전 등의 타입을 파일로 내보내는 패키지가 있다고 한다.(라고 공략이 말했다.) urllib을 이용하여 banner...