python | 뒤에서부터 찾을 때 사용하는 rfind(), rindex()
·
TIL/python
찾고자 하는 요소가 앞에서부터 몇 번째에 위치하는지 알고자 하면 find 또는 index를 사용하면 된다. python | 파이썬 find() 함수 사용 및 index()와 차이점 파이썬에서 특정 문자열의 위치, 인덱스 번호를 찾고자 할 때 find() 함수를 사용할 수 있다. 예를 들어, '123456'이라는 문자열에서 '3'의 인덱스 번호를 찾으려면 찾고자 하는 문자열을 매개변수로 dduniverse.tistory.com 하지만, 뒤에서부터 찾고 싶을 때는 어떻게 해야 할까? 물론 주어진 리스트를 거꾸로 정렬한 뒤 찾는 방법도 있겠지만, 원래 상태에서 뒤에서부터의 위치를 찾아야 한다면 새로운 방법이 필요하다. 그럴 때 index, find 앞에 r만 붙여 rindex, rfind를 사용하면 된다. 먼..
프로그래머스 | 카드 뭉치 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(cards1, cards2, goal): g1 = [] g2 = [] for i in goal: if i in cards1: g1.append(i) if i in cards2: g2.append(i) if g1 == cards1 and g2 == cards2: return 'Yes' elif g1 == cards1 and len(g2) == 0: return 'Yes' elif len(g1) == 0 and g2 == cards2: return 'Yes' else: r..
프로그래머스 | 2018 KAKAO BLIND RECRUITMENT | [1차] 다트 게임 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import re def solution(dartResult): dr = re.split('([0-9][0-9]?[A-Z][#|*]?)', dartResult) dr = ' '.join(dr).split() # print(dr) num = [] for i in dr: n = 0 for j in range(len(i)): if i[j] == 'S': n = (int(i[:j]) ** 1) if i[j] == 'D': n = (int(i[:j]) ** 2) if i[j] == 'T': n =(int(i[:j..
프로그래머스 | 2019 KAKAO BLIND RECRUITMENT | 실패율 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 길기 때문에 접근법과 풀이과정에 대한 설명만 남깁니다. 처음 시도한 코드 def solution(N, stages): fail = [0] * N # 실패율 for i in range(N): fail[i] = [i+1, stages.count(i+1) / sum([s>=(i+1) for s in stages])] return [i[0] for i in sorted(fail, key=lambda x:x[1], reverse=True)] 처음 접근한 방식은 다음과 같다. 각 단계별 실패율을 담을 리스트 fa..
프로그래머스 | 모의고사 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 import numpy as np import math def solution(answers): supoza1 = [1,2,3,4,5] * math.gcd(len(answers), 5) supoza2 = [2,1,2,3,2,4,2,5] * math.gcd(len(answers), 8) supoza3 = [3,3,1,1,2,2,4,4,5,5] * math.gcd(len(answers), 10) supo = [] supo.append(sum(np.equal(answers, supoza1[:len..
python | for ~ else 구문 사용하기
·
TIL/python
소수 찾기 문제를 해결하면서 for문을 탈출하기 위한 방법을 찾다가 파이썬에만 존재하는 for ~ else 구문을 알게 되어 정리해보려 한다. 아래 코드는 i가 소수인지 아닌지 판별하는 코드임을 3줄만 읽어도 모두가 알 것이다. for 문을 돌면서, i가 소수가 아닐 때도 어떤 action을 하고 싶어서 if ~ else 구문을 작성해 주었다. for i in range(2, 11): for j in range(2, i): if i % j == 0: print(f'{i}는 소수 아님') break else: print(f'{i}는 소수') break 하지만 이 코드는 우리가 원하는 대로 결과를 출력하지 않는다. 우리는 i가 소수이면 'i는 소수'를, 소수가 아니면 'i는 소수 아님'을 출력하길 원한다. ..