목록PYTHON (55)
오랑우탄의 반란

오늘도 오랑이는 문제를 풉니다. 숫자 짝꿍 풀이 과정 1X 와 Y 의 각 숫자 비교, 일치할 경우 temp 리스트에 넣어주기 각각의 케이스 정의 (-1, 0, 내림차순 정렬 숫자)이때 첫 번째 조건에서 아래와 같은 예시에 있어 5가 3개 들어가는 것을 방지하기 위해 일치할 경우 Y의 숫자를 공백으로 대체해줍니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에는 5가 3개, Y에는 5가 2개 나타나므로 남는 5 한 개는 짝 지을 수 없습니다.)def solution(X, Y): answer = '' temp = [] for i in X: if i in ..

오늘도 오랑이는 문제를 풉니다. 옹알이(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개씩 순열 조..

정규식의 기초 개념과 간단한 사용법에 대해 알아보겠습니다. 더 구체적인 메소드나 개념설명은 파이썬 re 사용 공식문서를 확인해주세요. 정규 표현식 (re 모듈)파이썬에서 정규 표현식을 지원하는 re 모듈을 제공하는데요이를 사용해 문자열의 일치 여부를 확인할 수 있습니다. 정규식 메타문자우선 정규식에 사용되는 메타문자의 종류와 쓰임을 간단히 짚고 넘어갑시다. 메타문자의미예시[]문자 클래스, [] 안에 들어간 문자 중에 있는지 확인- 로 범위 설정[a-zA-Z] : 모든 알파벳[0-9] : 모든 숫자.\n (줄바꿈)을 제외한 임의의 문자a.b: a + 모든_문자 + baab True ** 앞의 문자 0번 이상 반복ca*t: a 가 0부터 무한대까지 반복ct True (a가 0번 반복)++ 앞의 문자 1번..

오늘도 오랑이는 문제를 풉니다. 로또의 최고 순위와 최저 순위 풀이 과정간단한 문제인데요, 조건을 정리하면 아래와 같습니다. 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 개를 맞췄을 때..

오늘도 오랑이는 문제를 풉니다. 기사단원의 무기 풀이 과정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): ..

오늘도 오랑이는 문제를 풉니다. 덧칠하기 풀이 과정처음엔 입출력 예시만 고려한 채로 아래와 같은 코드로 풀었습니다. 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 하지만 채점 결과 정확성이 반밖에 되지 않더군요. 예외케이스가 ..

pandas 에서 자주 사용되는 value_counts() 함수에 대해 알아보겠습니다. ParametersSeries.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)Series.value_counts()normalize: 값의 상대적 빈도로 표시sort: count 정렬 여부ascending: 내름차순으로 count 정렬 bins: 연속형 자료를 이산 가격으로 bindropna: NaN 값 미포함 여부 우선 연습을 위한 데이터프레임을 생성해줍니다. data = pd.DataFrame({ 'Name':['Alice','Bob','Charlie','Rachel','James','Pedro','Em..

기초통계 시리즈의 마지막으로 가설검정의 주의점에 대해 간단하게 짚고 넘어가겠습니다. 재현 가능성, p해킹, 선택적 보고동일 연구나 실험을 반복했을 때 결과가 일관되게 재현이 가능해야 하고, 이는 연구의 신뢰성을 높여줌.하지만 0.05 수준의 p값에 대해 가설검정의 잘못된 사용이 낮은 재현성으로 이어진다는 문제가 발생하고 있다고 함 0.05라는 것은 20번 중에 1번은 귀무가설이 옳을 수 있음에도 이것이 기각될 수 있다는 얘기인데, 이런 오류를 피하기 위해 데이터 모수를 늘리는 방향이 제안됨p해킹이란 p값을 인위적으로 낮추고자 데이터 분석을 반복하거나, 유의미한 결과를 얻기 위해 분석을 반복하는 것결과에 따라 가설을 변경하거나 데이터 개수를 늘려서 결과에 이를 맞추려고 하면 안됨유의미한 결과, 유의미하지..