목록전체 글 (90)
오랑우탄의 반란
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LfaMB/btsIX3rOvSt/s2f6mTs3fzjksd7WSLcAHk/img.png)
오늘도 오랑이는 문제를 풉니다. 옹알이(2) 풀이 과정 1"aya", "ye", "woo", "ma" 4개의 요소 순열 구하기babbling 이 순열과 일치하면 개수 세기 Permutation vs Combination앞서 배웠던 itertools 의 combination 조합과 비슷하지만 조금 다른 permutation 순열을 사용해봤습니다. Permutation (nPr) 순서를 고려한 숫자들의 매칭 예) (1, 2), (1, 3), (2, 3), (3, 2), (3, 1), (2, 1) Combination (nCr)순서를 고려하지 않는, 숫자들의 중복 없는 매칭 예) (1, 2), (1, 3), (2, 3) speak 발음의 모든 순열을 구해야 하기 때문에 for 반복문에 1~5개씩 순열 조..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLUYiO/btsIYzjIAOf/9ODlZSx4cxRqkZn5swMU50/img.png)
정규식의 기초 개념과 간단한 사용법에 대해 알아보겠습니다. 더 구체적인 메소드나 개념설명은 파이썬 re 사용 공식문서를 확인해주세요. 정규 표현식 (re 모듈)파이썬에서 정규 표현식을 지원하는 re 모듈을 제공하는데요이를 사용해 문자열의 일치 여부를 확인할 수 있습니다. 정규식 메타문자우선 정규식에 사용되는 메타문자의 종류와 쓰임을 간단히 짚고 넘어갑시다. 메타문자의미예시[]문자 클래스, [] 안에 들어간 문자 중에 있는지 확인- 로 범위 설정[a-zA-Z] : 모든 알파벳[0-9] : 모든 숫자.\n (줄바꿈)을 제외한 임의의 문자a.b: a + 모든_문자 + baab True ** 앞의 문자 0번 이상 반복ca*t: a 가 0부터 무한대까지 반복ct True (a가 0번 반복)++ 앞의 문자 1번..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c7xc0S/btsIXYqe16M/prAU60wG4Clkie6rKznWAK/img.png)
오늘도 오랑이는 문제를 풉니다. 로또의 최고 순위와 최저 순위 풀이 과정간단한 문제인데요, 조건을 정리하면 아래와 같습니다. lottos와 win_nums 비교일치 번호 개수 = 최저 순위 결정일치 번호 개수 + 0인 개수 = 최고 순위 결정우선 lottos 와 win_nums 를 비교해서 최고/최저 순위가 될 번호의 개수를 각각 세어봅니다. count = 0for i in lottos: for j in win_nums: if i==j: count += 1 # 일치하는 번호 개수count + lottos.count(0) # 일치하는 번호 개수 + 0의 개수 이제 순위만 결정하면 되는데요, 번호 개수가 인덱스가 되도록 리스트를 작성해줍니다. 0, 1 개를 맞췄을 때..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9T00T/btsIWRrUrKP/h3UqU7l4pEbntwlPFDWg4k/img.png)
오늘도 오랑이는 문제를 풉니다. 602. Friend Requests II: Who Has the Most Friends 풀이 과정requester_id 와 accepter_id 칼럼에서 가장 자주 등장한 수 = idid 가 등장한 회수 카운트 = num친구추가는 한쪽이 하면 자동으로 다른쪽도 한거와 마찬가지기 때문에 requester_id 와 accepter_id 두 칼럼 모두에서 가장 많이 등장한 수를 찾아야 합니다. 즉 두 칼럼을 union해서 개수를 세어야 합니다.select requester_id as id from RequestAccepted union allselect accepter_id as id from RequestAccepted 여기에서 id별로 그룹하고 개수를 센 칼럼 num 기..
오늘은 MySQL 의 기본 자료형에 대해 알아보겠습니다. 숫자 자료형 정수형정수형 자료형은 기본적으로 SIGNED(기본, 양수/음수)과 UNSIGNED(양수) 옵션을 가짐 정수형 자료형은 AUTO_INCREMENT 제약조건을 이용해 ID 를 생성하는 데 유용함자료형범위저장크기특징TINYINTSigned: -128 ~ 127 Unsigned: 0 ~ 2551 byte매우 작은 정수값 저장, 메모리 사용 최소화SMALLINTSigned: -32,768 ~ 32,767 Unsigned: 0 ~ 65,5352 bytes 작은 정수값MEDIUMINTSigned: - 800만 ~ 800만 Unsigned: 0 ~ 1600만3 bytes 중간 크기 정수값INTSigned: 약 - 20억 ~ 20억* Unsign..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1rIRo/btsIW5b1AZC/ZOWu69WLTNppLZgGLatE8k/img.png)
파이썬의 pandas나 numpy 라이브러리를 사용해서 계산을 수행하는 경우 아래와 같이 너무 크거나 너무 작은 숫자에 대해 지수 e 가 붙어서 표시되는 경우가 종종 있는데요. 실제 어떤 수인지 확인하기 정말 불편하죠? 이때 출력 결과물을 일반 숫자 표기법으로 변환해주는 두 가지 방법이 있습니다. 1. Pandas pandas를 사용하고 싶은 경우, 아래와 같이 5번째 소수점까지만 표현되도록 제한할 수 있는데요import pandas as pdpd.options.display.float_format = '{:.5f}'.format 2. Numpy numpy가 좀 더 정확하고 간단하게 일반 숫자 표기법으로 변환해줍니다. 다만 print 구문에만 적용이 가능하다는 점. import numpy as npnp...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/x4Nji/btsIWiQkvZo/q17QCVHdEYoKwiEtR150OK/img.png)
오늘도 오랑이는 문제를 풉니다. 기사단원의 무기 풀이 과정number 까지의 숫자들 각각의 약수의 개수 구하기약수의 개수가 limit 이하인지 확인하기limit을 초과하는 경우 power 로 대체하기최종 숫자들의 합 구하기 우선 약수의 개수부터 구해줍니다. 처음에 count = 0을 첫번째 for 문 밖에 둬서 계속 결과가 틀렸다고 나왔는데, number 이하의 모든 숫자에 대해 count가 리셋되도록 꼭 for문 안에 넣어줘야 합니다. for num in range(1, number+1): count = 0 for i in range(1, int(num**0.5)+1): if num%i==0: if i == (num // i): ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cgIlLh/btsIUSESott/sxuYXRWE2DnyeitbBT8Qck/img.png)
오늘도 오랑이는 문제를 풉니다. 덧칠하기 풀이 과정처음엔 입출력 예시만 고려한 채로 아래와 같은 코드로 풀었습니다. section 의 최댓값과 최솟값의 차에 대해서 m과 들어맞는지 확인하고 결과물을 출력하는 방식이지요. def solution(n, m, section): answer = 0 i = section[len(section)-1] - section[0] + 1 if i//m == 0: answer = 1 else: if i%m == 0: answer = i//m else: answer = i//m+1 return answer 하지만 채점 결과 정확성이 반밖에 되지 않더군요. 예외케이스가 ..