https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(arr): answer = [] answer.append(arr[0]) for x in arr: if answer[-1] != x: answer.append(x) return answerhttps://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solut..
DP로 풀며 위쪽 스티커 선택할것인지 아래쪽 스티커 선택할 것인지 직전과 그 전 줄을 보며 선택import sysinput = sys.stdin.readlinet = int(input())for _ in range(t): n = int(input()) value = [[0]*(n+1) for _ in range(2)] value[0][1:] = list(map(int, input().split())) value[1][1:] = list(map(int, input().split())) dp = [[0]*(n+1) for _ in range(2)] dp[0][1] = value[0][1] dp[1][1] = value[1][1] for i in range(2, n+..
import sysinput = sys.stdin.readlinen = int(input())a = list(map(int, input().split()))m = int(input())b = list(map(int, input().split()))arr=[]while a and b: common = set(a) & set(b) if not common: break else: start = max(common) arr.append(start) a = a[a.index(start)+1::] b = b[b.index(start)+1::]print(len(arr))for x in arr: print(x, end=" ")가장 큰 값이 앞 숫자가 되는..
https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3from collections import defaultdictdef solution(participant, completion): answer = '' part_cnt = defaultdict(int) for ppl in participant: part_cnt[ppl]+=1 for ppl in completion: if part_cnt[ppl]==1: part_cnt.pop(ppl) else : part_cnt[ppl]-=1 for ppl in part_cnt.keys(): ..
https://www.acmicpc.net/problem/16953import sysinput = sys.stdin.readlinea,b = map(int, input().split())cnt = 1while b>a: if b%2==0: cnt+=1 b/=2 elif b%10==1: cnt+=1 b//=10 else: breakif a!=b: print(-1)else : print(cnt)python의 경우 sys.stdin.readline 함수를 input 에 저장해두고 쓰면 편하다!split이 아니라 python의 map 함수를 사용해서, 형태 변환 및 변수 할당을 같이 할 수 있다
https://school.programmers.co.kr/learn/courses/30/lessons/43162# 틀린 풀이 방법def solution(n, computers): answer = 0 network_dict = {} for i in range(n): for j in range(i+1, n): if computers[i][j]==1: cnt = network_dict.get(i) if cnt is None: answer+=1 network_dict[i]=answer network_dict[..
https://leetcode.com/problems/unique-number-of-occurrences arr에 있는 숫자의 각 개수를 세는 데 반복문으로 일일히 세서 넣을 수도 있지만, collections를 사용하면 쉽게 개수를 셀 수 있다. collections 모듈의 Counter를 사용해, 해당 arr의 숫자와 개수를 dict 타입의 key와 value로 나타낼 수 있다. 이후 set을 사용해 숫자들의 개수가 겹치는 것이 있는 지 확인해 주었다. import collections class Solution: def uniqueOccurrences(self, arr: List[int]) -> bool: dictArr = collections.Counter(arr) if len(dictArr) !..
https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(elements): sums=set() el_len=len(elements) elements=elements[1:el_len]+elements for idx in range(el_len): for i in range(el_len+idx, len(elements)+1): sums.add(sum(elements[idx+el_len-1:i])) for i in range(idx..
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(want, number, discount): answer = 0 for day in range(len(discount)-9): isOk=True for i in range(len(want)): if not discount[day:day+10].count(want[i])==number[i]: isOk=False break if isOk: answer+=1 return ans..
https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr phone_book을 정렬했을 때, phone_book[i]가 phone_book[i+1]의 접두사가 아니라면 다른 것의 접두사도 아닐 것 def solution(phone_book): phone_book.sort() for i in range(0, len(phone_book)-1): if phone_book[i+1].startswith(phone_book[i]): ..