본문 바로가기

티스토리챌린지20

2020 카카오 인턴십 > 키패드 누르기, 구현, abs https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각번호별 좌표를 리스트에 저장하고 L, R에 해당하는 번호는 그냥 바로 저장하면 되고 2, 5, 8, 0 을 누를때는 거리를 비교해서 저장하면 됩니다. 더 간단하게 할 방법이 있을까 고민했는데 지금은 이게 그나마 나은 거 같습니다. 더 좋은 방법이 있다면 알려주시면 감사하겠습니다. 코드 def distance(direct, now): return abs(direct[0] - now[0]) + abs(direct[1] -.. 2024. 11. 15.
공원 산책 - Python, 구현 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각출발 위치를 찾고 이동을 하면 됩니다. 다만 범위를 벗어나거나, 중간에 장애물이 있으면 이동을 안합니다. 그러니까 쭉 본 후에 문제 없으면 이동해야 합니다. 이걸 풀면서 새로 배운게 있어서 기록합니다. for문 else 사용 for _ in range(steps): nx += dx ny += dy # 범위 체크 및 장애물 확인 if not (0  for문이 문제 없이 진행 되면 else문이 실.. 2024. 11. 14.
기능개발 - Pyton, Deque, Math.ceil https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각첫번째 progress가 완료 되어야 뒤에 것들도 완료된다. 그러니까 첫번째 progress가 종료되는 날짜를 구하고 (math.ceil 을 쓰는 이유는 올림을 위해서이다.) 뒤에 progress들에도 일괄적으로 진행도를 더한다. 그 후 100이 넘어가는 progress들의 갯수를 세어준다. 100이 안 넘어가면 위의 과정을 반복한다.   코드 from collections import dequeimport mathdef .. 2024. 11. 13.
체육복 - Python, set https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각set의 차집합을 이용해서 체육복을 빌려 줄 수 있는 경우를 체크합니다. 이미 여분이 있는 경우에도 차집합을 통해 자동으로 걸러집니다. 코드 def solution(n, lost, reserve): real_lost = set(lost) - set(reserve) real_reserve = set(reserve) - set(lost) for no in sorted(real_reserve): .. 2024. 11. 12.
최빈값 구하기 - Python, Counter https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 - 나의 생각Counter로 반복된 횟수를 구하고 max를 통해 최빈값을 구합니다. Counter로 구한 값을 반복문을 돌려 최빈값과 같은 경우를 찾아냅니다. 이 경우가 1개 이상이라면 최빈값이 여러개 있는 거니까 -1을 반환하고 1개라면 그 값을 반환해줍니다.  코드 from collections import Counterdef solution(array): answer = -1 cntNum = Counter(array) .. 2024. 11. 11.
숫자 짝궁 - Python, Counter, extend https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각Counter를 이렇게 쓸 수 있다니.... 처음에는 딕셔너리에 일일이 샜는데 찾아보니 Counter가 있다는 것을 깨달았다. 덕분에 숫자를 하나씩 추가하지 않고 extend를 통해 한 번에 추가할 수 있었다. nums가 9부터 시작하는 이유는 정렬을 위해서다. 코드 from collections import Counterdef solution(X, Y): cntX = Counter(X) cntY = Count.. 2024. 11. 10.