여태까지 배운 내용을 바탕으로, 파이썬으로 로또 번호 6개를 중복 없이 뽑는 방법을 알아보겠습니다. c언어 스럽게 짠다면 아래와 같이 작성할 수 있습니다. 먼저, flag를 선언합니다. 이것은 단지, 어떤 수가 뽑혔는지를 나타내는 배열입니다. 5번째 줄부터 6번을 돌려보는데요. r은 구간 [1, 45+1)에 속하는 수 중 하나입니다. 수를 뽑았을 때, flag[r]의 값이 1이라면 루프를 계속 돌고, 그렇지 않으면 r을 선택합니다. r을 선택할 때, flag[r]에 1을 넣어줍니다. 그리고, 선택한 수를 추가해 주면 됩니다. 이렇게 6번을 뽑으면 됩니다. 중복된 수가 나오지 않았음을 볼 수 있습니다. 그런데, 파이썬에는 딕셔너리가 있습니다. 이것은, 중복된 키 값을 저장하지 않습니다. 그렇다면, 아래와 ..
파이썬 검색 결과
문자열 처리를 할 때, 뒤에 있는 공백을 제거하거나, 뒤에 붙은 특정한 문자를 제거해야 하는 경우가 있습니다. 그 처리를 해야 할 때 어떻게 해야 할까요? 이번 시간에는 파이선의 strip 메서드에 대해 알아보겠습니다. 예제 1번을 보겠습니다. st는 앞과 뒤에, 공백과 탭으로 이루어져 있습니다. st.strip()를 수행해 봅시다. 그러면 앞, 뒤에 붙은 공백, tab이 모두 제거 되었음을 알 수 있습니다. 이렇게 strip에 아무 인자도 오지 않은 경우에는 default로 화이트 문자들을 제거하게 된다고 문서에 명시되어 있습니다. 만약에, 앞과 뒤에 ., #, $하고, 화이트 문자가 들어오는 것을 지우려면 어떻게 하면 될까요? 이런 방법을 생각해 볼 수는 있습니다. strip를 2번 쓰면 된다. .,..
파이썬에는 tuple이 있습니다. 순서 타입 중 하나입니다. 이것에 대해서 예제 프로그램을 보면서 간략하게 알아봅시다. 먼저, 튜플은 (2, 3, 5)와 같이 쓸 수 있습니다. 처음에 p가 어떤 클래스의 객체인지 찍어 보았습니다. 다음에, 3번째 loop에서 p에 있는 전체 원소들을 순회합니다. 디버그 창으로 변수를 보니, 그냥, 2, 3, 5가 저장이 되어 있음을 볼 수 있습니다. 실행 결과는 위와 같습니다. 일단, 순회가 가능합니다. 리스트도 분명 이런 연산이 가능했습니다. 예제 2를 봅시다. 이것도 하는 일은 단순합니다. 3번째 줄부터 4번째 줄 까지는 p에 있는 요소들을 모두 순회합니다. 그리고, 5번째 줄부터 6번째 줄까지는, li에 있는 것을 모두 순회합니다. 이 둘이 순회 가능하니, 저렇게 ..
파이선에서 list를 뒤집는 연산은 꽤 많이 쓰입니다. 어떻게 뒤집는지 알아봅시다. 먼저 [::-1]입니다. 이것은, 리스트를 역순으로 뒤집습니다. 실행 결과는 아래와 같습니다. yrotselpam 메이플 스토리가 뒤집어진 모양입니다. 이는 step이 -1이였기 때문입니다. -1은, 역순으로 1칸씩 이동한다는 의미입니다. -2를 하면 어떨까요? 역순으로 2칸씩 이동할까요? 직접 입력해 보겠습니다. li[::-2]를 입력해 보았습니다. 그러면 yosla가 출력됨을 알 수 있는데요. y로부터 역순으로 2칸 가면 o가 나오고, o에서 2칸 역순으로 가면 s가 나옵니다. s에서 2칸 왼쪽으로 가면 l이 나오고, 또 거기서 왼쪽으로 2칸 가면 a가 나옵니다. 즉, -2는 왼쪽으로 2칸씩 이동한다는 의미입니다. 저..
안녕하세요. 이번 시간에는 for in문에 대해서 알아보겠습니다. 보통 ps를 하거나, 코테를 준비한다고 하면, 저는 3개만 잘 하라고 합니다. balanced tree, hash, array. 이 3개에서 거의 벗어나지 않기 때문이에요. 이 3개를 가지고 for in 문을 갖고 놀아보겠습니다. 기본적으로 파이선은 bintree 계열이 없는 듯 하니, bintree 패키지를 깔아줍시다. 가상 환경에 깔아두면 유용하게 써먹을 수 있습니다. 이것은 rb 트리 뿐만이 아니라, AVL도 포함하고 있습니다. 프로그램은 간단합니다. 30번 loop를 돌면서, tree에 (x,1) pair를 추가합니다. 그리고 8번째 줄에서 뭔가를 하는 듯 보입니다. 출력 결과를 봅시다. 트리 안에 있는 (K, V)쌍을 출력했음을 ..
최근댓글