[프로그래머스 / Python] 안전지대
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120866문제다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.내 답안def solution(board): answer = 0 bomb = [] n = len(board) #폭탄 찾기 for i in range(n): for ..
[프로그래머스 / Python] OX퀴즈
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120907문제덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.내 답안def solution(quiz): return ["O" if eval(i.split("=")[0]) == int(i.split("=")[1]) else "X" for i in quiz]남의 풀이def solution(quiz): answer = [] for q in quiz: p, a = q.split("=") ..
[프로그래머스 / Python] 등수 매기기
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120882문제영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.내 답안def solution(score): # 각 학생의 영어와 수학 점수의 평균 계산 avg = [sum(i)/2 for i in score] # 평균을 기준으로 점수가 높은 순서대로 정렬 sorted_avg = sorted(avg, reverse=True) answer = [] ..
[프로그래머스 / Python] 영어가 싫어요
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120894문제영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.내 답안def solution(numbers): answer = 0 c = dict(zip(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])) for i in c.keys(): numbers = nu..
[프로그래머스 / Python] 가까운 수
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120890문제정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.포인트이 문제의 핵심은 두 가지입니다. 첫 번째는 주어진 n과의 차이(절대값)가 가장 작은 원소를 찾는 것이고, 두 번째는 그러한 원소가 여러 개일 경우 더 작은 값을 반환하는 것입니다.내 답안def solution(array, n): # 주어진 배열에서 n과 가장 가까운 수 찾기 # 거리가 같은 경우 더 작은 수 반환 return min(array, key=lambda x: (abs(x - n), ..
[프로그래머스 / Python] 소인수분해
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120852?language=python3문제소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.포인트이 문제는 수학적 이해와 알고리즘 설계 능력을 동시에 요구합니다. 주어진 수를 가능한 작은 소수부터 차례로 나누어 가며 소인수를 추출하는 과정을 통해, 반복문과 조건문 사용법을 숙달할 수 있습니다.내 답안def solution(n): ans..
[프로그래머스 / Python] 합성수 찾기
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120846문제약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.제한사항1 ≤ n ≤ 100생각의 과정합성수? 오랜만에 듣는 단어라, 처음에는 합성수를 어떻게 구할 수 있을지 고민하는데 시간이 좀 걸렸습니다. 이런 수학적 개념을 프로그래밍에 적용하는 건 항상 새로운 도전 같네요. 합성수를 찾는 방법을 생각하다 보니, 약수의 개수를 세는 방식이 필요하다는 것을 깨달았습니다. 모든 수에 대해 약수를 찾아 그 개수가 3개 이상인지 확인해야 하죠.포인트약수를 찾아 그 개수가 3개 이상인..
[프로그래머스 / Python] 369게임
·
Algorithm/프로그래머스
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/120891문제머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.포인트문자열 처리: 숫자를 문자열로 변환하여 각 문자를 살펴봄으로써 특정 조건에 맞는 문자의 수를 셀 수 있습니다.간단한 조건 검사: 특정 문자('3', '6', '9')가 몇 번 등장하는지 확인하여, 그 횟수를 결과로 반환합니다.내 답안def solution(..
[프로그래머스 / Python] 분수의 덧셈
·
Algorithm/프로그래머스
문제첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.포인트분수 덧셈: 두 분수를 더할 때는 각 분수의 분자에 다른 분수의 분모를 곱하고, 그 결과를 더하여 새로운 분자를 구합니다. 분모는 두 분모의 곱으로 계산됩니다.기약분수로의 간소화: 최대공약수(GCD)를 사용하여 분자와 분모를 나눔으로써 분수를 기약분수 형태로 간소화합니다.lcm 함수: 최소공배수(LCM)를 계산하는 함수는 파이썬 3.9부터 math 모듈에 포함되어 있습니다. 파이썬 3.8에서는 이 함수를 사..
[프로그래머스 / PCCP 기출문제 3번 / Python] 충돌위험 찾기
·
Algorithm/프로그래머스
문제어떤 물류 센터는 로봇을 이용한 자동 운송 시스템을 운영합니다. 운송 시스템이 작동하는 규칙은 다음과 같습니다.물류 센터에는 (r, c)와 같이 2차원 좌표로 나타낼 수 있는 n개의 포인트가 존재합니다. 각 포인트는 1~n까지의 서로 다른 번호를 가집니다.로봇마다 정해진 운송 경로가 존재합니다. 운송 경로는 m개의 포인트로 구성되고 로봇은 첫 포인트에서 시작해 할당된 포인트를 순서대로 방문합니다.운송 시스템에 사용되는 로봇은 x대이고, 모든 로봇은 0초에 동시에 출발합니다. 로봇은 1초마다 r 좌표와 c 좌표 중 하나가 1만큼 감소하거나 증가한 좌표로 이동할 수 있습니다.다음 포인트로 이동할 때는 항상 최단 경로로 이동하며 최단 경로가 여러 가지일 경우, r 좌표가 변하는 이동을 c 좌표가 변하는 이..