본문 바로가기

프로그래머스107

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/136798 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 - 나의 생각약수를 구하는 방법이 중요한 거 같다. 가장 좋은 방식은 1 ~ number까지의 약수를 미리 구해둔 후 처리하는 방법이 아닐까 생각한다. 확실히 그때 그때 약수를 구해서 처리하는 것보다는 빨랐다. i 를 기준으로 i의 배수들에 반복하면서 해당 숫자의 약수 개수를 구할 수 있다. 이 방법이 하나씩 구하는 경우보다 훨씬 빠르다코드 def solution(number, limit, power): weight = 0 .. 2024. 11. 14.
공원 산책 - 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.
캐릭터의 좌표 - Python, 구현 https://school.programmers.co.kr/learn/courses/30/lessons/120861?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각간단한 구현 문제입니다. 딕셔너리를 통해 해당 키보드에 맞는 움직임을 저장해두고 범위안에서만 움직이게 하면 됩니다.   코드 def solution(keyinput, board): x, y = 0, 0 minX, maxX = -(board[0]//2), board[0]//2 minY, maxY = -(board[1]//2), board[1]//2 direct = {"up.. 2024. 11. 13.
평행 - Python, 기울기, 비구조화 할당 https://school.programmers.co.kr/learn/courses/30/lessons/120875?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각점이 4개 밖에 없으니까 페어를 이룰 수 있는 경우를 모두 확인해서 평행인 경우가 있는지 찾으면 됩니다. 평행인 경우를 아는 방법은 점들이 주어졌을 때, 네 점을 이루는 모든 선분 쌍을 구성하여 기울기를 비교할 수 있습니다. 벡터 (x1,y1)과 (x2,y2)가 주어졌을 때, 두 벡터가 평행하려면 다음 조건이 성립해야 합니다. x1 * y2 = x2 * y1​ 페어의 벡터 성분을 구한 후 위.. 2024. 11. 13.
안전지대 - Python, 구현, set https://school.programmers.co.kr/learn/courses/30/lessons/120866?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각 단순하게 반복문 돌려가면서 구해도 되고 폭탄의 범위를 set으로 저장 후 전체 칸 - set의 길이 = 정답 을 구해도 된다. 코드 def boom(board, x, y): di = [(-1,-1), (-1, 0), (-1, 1), (0, -1), (0, 1),(1,-1), (1, 0), (1, 1)] for dx, dy in di: nx, ny = x + d.. 2024. 11. 13.