본문 바로가기

알고리즘149

[파이썬]programmers: 거리두기 확인하기 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 응시자(P)들의 맨허튼 거리두기가 옳게 되었는지 알아보는 문제. bfs를 이용하여 문제를 풀었으며, 맨허튼 거리는 2이하까지만 된다는 점을 이용하여 현 P의 위치에서 거리두기 위치내에 P가 있는지 없는지를 확인하며 풀었다. bfs 인자로, P의 y,x,0을 받았고 거리마다 +1된 인자를 넣어 유효한 거리인지 검사하였다. def solution(places): # bfs코드##############.. 2022. 12. 26.
[파이썬]baekjoon 6603: 로또 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 재귀 이용해서 풀었다. 재귀를 진행하며, 6개의 숫자가 채워질 때 마다, 출력을 하였고, 조합의 개념을 넣기 위해 인자에 index값을 변환시켜 주었다. while 1: arr = list(map(int,input().split())) k=arr[0] arr=arr[1:] path = [0]*6 def abc(level, start): if level == 6: print(*path) .. 2022. 12. 17.
[파이썬]progammers: 모음사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 문자가 사전적으로 몇번째 단어가 되는지 찾아내는 문제이다. 나같은 경우, dfs로 구현을 하였는데, 시간적으로 좋은 코드는 아님....(그냥 오랜만에 dfs로 문제를 풀어본것) 주어진 문자와 같게끔 만드는데 몇번의 과정을 거치는지 찾는 문제. dfs를 사용하면, 중간에 return 시키지 못하고 전체 다 탐색 이후 결과를 출력할 수 있는데 이부분에서 시간이 너무 많이 잡아먹는다. 하지만 출.. 2022. 12. 10.
[파이썬]programmers: 땅따먹기 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DP문제 한칸한칸 내려가며, 겹치는 열이 나오지 않도록 슬라이싱을 하여 리스트를 나누어 주었다. 최댓값을 갖게 되는 경우를 매칸 더해주어서 마지막 줄에 max값을 return 해주면 된다! def solution(land): for y in range(1, len(land)): #두번째 줄 부터 경우를 탐색하며 내려옴 for x in range(4): # 4개 열중 전에 탐색한 열은 제외하며 최댓.. 2022. 12. 9.
[파이썬]programmers: 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr for문을 돌며, 현재 상태의 주가가 몇초안에 떨어지는지 확인하는 문제이다. stack개념의 문제라는데.. stack개념으로 풀진 않았고, 단순 2중포문으로 풀었다. def solution(prices): answer = [0]*len(prices) for i in range(len(prices)-1): for j in range(i+1, len(prices)): if prices[i] > pri.. 2022. 12. 9.
[파이썬]programmers: 롤케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 초기구현 topping 전체를 돌며 왼쪽과 오른쪽을 나누어 매번 set형태의 값을 만들어주었다. 정확성은 맞지만.. 시간초과가 많이 되었음ㅠ (아마 매번 set을 만들어 해결하다 보니 그런듯 합니다) def solution(topping): answer = 0 end = len(topping) for i in range(len(topping)): left=set(topping[0:i]) righ.. 2022. 12. 8.