본문 바로가기

프로그래밍/알고리즘13

백준 10815 def cc(m, sang): result = [] loc = [] sang = numpy.array(sang) for a in m: loc.append(numpy.where(sang == a)[0]) loc.sort() #for b in range(1, len(loc)): # print(loc[b]) for b in range(len(sang)): if b in loc: result.append(1) else: result.append(0) print(*result) if __name__ == '__main__': warnings.filterwarnings(action='ignore', category=DeprecationWarning) cc([6, 3, 2, 10, -10], [10, 9, -5, 2.. 2023. 10. 22.
[프로그래머스] K번째 수(파이썬) 코딩테스트 연습 - K번째수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 요약] - 입력으로 리스트 2개가 주어진다. - commands 리스트의 첫번째 인자부터 두번째 인자까지 추출한 뒤 세번째 인자 위치의 수를 출력한다. - commands 리스트의 길이만큼 반복한다. [문제 풀이 방법] - 2번째부터 5번째까지 자르면 -> 인덱스로는 1번 ~ 4번이기 때문에 처음 범위에서 1을 빼줬다. - 리스트를 오름차순으로 정렬하고 또 다른 리스트에 3번째 숫자를 추가한다. [정답] def sol.. 2023. 6. 22.
[프로그래머스] 명예의 전당 (1) (파이썬) 코딩테스트 연습 - 명예의 전당 (1) | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 요약] - 입력으로 k와 score 리스트가 주어진다. - k는 명예의 전당 최대 정원이다. - 결과: 매일 매일의 최저점을 리스트로 반환한다. [문제 해결] - 전체 반복문은 score의 길이만큼 지정한다. - 명예의 전당 전용 리스트를 만들고, k만큼 넣는다. - 1일부터 k일까지는 모든 점수를 넣고 k일 이후부터는 제일 작은 점수를 제외한다. - 제일 작은 점수와 새로 생긴 점수를 비교하고 처리한다. .. 2023. 6. 21.
[프로그래머스] 폰켓몬(파이썬) 코딩테스트 연습 - 폰켓몬 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 요약] - nums 리스트에 포켓몬 번호가 주어진다. - 포켓몬은 N/2 마리만 가질 수 있다. - 나는 최대한 많은 종류의 포켓몬을 가지고 싶다. - 가질 수 있는 가장 많은 가짓수를 출력한다. [문제 해결 과정] - 최대한 많은 종류기 때문에 중복은 제거한다. -> set 이용 - N/2 이기 때문에 2로 나눠준다. - 1번 예시처럼 포켓몬의 종류가 nums/2보다 큰 경우엔 무조건 리스트 길이를 2로 나눈 값이 정.. 2023. 6. 21.
[프로그래머스] 푸드 파이트 대회(파이썬) 코딩테스트 연습 - 푸드 파이트 대회 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 요약] - 입력은 food 리스트가 주어진다. - 리스트의 0번째 인덱스는 의미가 없다. - 인덱스 1번부터 칼로리 1, 인덱스 2번은 칼로리 2, 3번은 3,,, 이런식으로 증가한다. - 결과는 0을 중심으로 대칭이다. [문제 해결 과정] - 리스트는 1번 인덱스부터 읽는다. - 인덱스와 칼로리가 동일하기 때문에 인덱스를 문자열로 변환시켜야 한다. - 결과가 0을 중심으로 대칭이기 때문에 0 앞에만 만들고,.. 2023. 6. 21.
백준 1373 문제 풀이 """ n = input() n = n[::-1] cnt = 0 result = 0 for i in n: result += (int(i) * (2 ** cnt)) cnt += 1 print('{0:o}'.format(result)) """ n = int(input(), 2) print('{0:o}'.format(n)) 처음에는 문자열을 입력받아서 뒤집고, 자릿수만큼 2를 제곱해준 수를 곱하고 난 결과를 8진수로 변환했는데 시간초과가 발생했다. 검색해보니까 아주 간단했다. 파이썬에서는 2진수로 입력을 받는 기능이 있었다. 그리고 oct 함수로 변환을 했는데, 이 상태에서 그냥 print를 사용하면 아래처럼 8진수임을 알리는 문자 2개가 포함되어 나오기 때문에 format을 이용했다. 파이썬은 기.. 2022. 7. 7.
728x90