본문 바로가기
728x90
반응형

전체 글510

[백준] 11653번 : 소인수분해 - 파이썬(Python) - 우당탕탕 개발자되기 프로젝트 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 소인수분해할 정수를 입력받는다. N = int(sys.stdin.readline()) 소인수분해는 첫 번째 소수인 2부터 나누어 떨어지는지 확인해야 하므로 변수를 생성하고 2를 저장한다. i = 2 정수가 1이 되어 더 이상 나누어 떨어지지 않을 때까지 반복하며 while (N > 1) 만약 정수가 나누어 떨어지면 if (N % i == 0) 해당 소수를 출력한다. print(i) 그리고 정수를 소수로 나눈 몫으로 새로 저장한다. N //= i 반면에.. 2023. 7. 27.
[백준] 1018번 : 체스판 다시 칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 조금 귀찮긴 하지만 처음부터 끝까지 가능한 8x8 체스판을 선정하고 선정한 체스판마다 각 왼쪽 상단의 시작 칸이 흰색과 검은색으로 시작하도록 색칠한다. 각 색별 칠한 칸 수를 따로 구하여 더 적은 칸을 칠한 경우를 계속 적으로 저장한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 보드의 크기를 각 입력받는다. N, M = map(int, sys.stdi.. 2023. 7. 26.
[프로그래머스] 프로세스 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 프로세스 중요도가 제일 큰 것부터 실행되어야 하므로 중요도가 제일 큰 프로세스를 찾아 실행 시작 위치를 저장한다. place = priorities.index(max(priorities)) 원하는 답을 구할 때 프로그램을 중단하기 위해 무한 반복문을 사용한다. while (True) 중요도가 가장 큰 프로세스의 중요도 값을 저장한다. value = max(priorities) 만약 현재 실행할 순서의 프로세스의 중요도가 가장 큰 중요도이면 if (priorities[place] .. 2023. 7. 26.
[백준] 1931번 : 회의실 배정 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 회의 시간이 겹치면 안 되므로 시작하는 시간과 끝나는 시간이 중요하다. 최대한 많은 회의를 진행해야 하므로 회의의 끝나는 시간이 짧은 것부터 회의를 시작해야 뒤에 이어지는 회의가 최대한으로 이루어질 수 있다. 하지만 끝나는 시간이 같다면 시작하는 시간을 봐야 하는데, 시작하는 시간과 끝나는 시간이 같을 경우 회의를 더 많이 할 수 있다. 하여 끝나는 시간이 같다면 시작하는 시간이 더 앞선 회의부터 진행한다. sys.stdin.readline() 함수를 활용하기 위해 sys 모듈을 불러온다. import sys 회의의 개수를 입력받는다... 2023. 7. 26.
[프로그래머스] 소수찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 소수를 찾아 저장할 리스트를 생성한다. li = list() 소수의 시작인 1부터 시작하여 입력받은 수 사이에서 소수를 찾는다. for i in range(2, n + 1) 수를 일단 리스트에 추가한다. li.append(i) 소수인지 판별할 때는 2부터 자기 이전까지 수 중 모두 나누어 떨어지지 않으면 그 수는 소수이다. 하지만 이렇게 판별하게 되면 많은 시간이 소요된다. 이때 판별하는 수의 제곱근을 구하여 해당 제곱근 이전의 정수까지 나누어 봤을 때 나누어 떨어지지 않는다면 .. 2023. 7. 25.
[프로그래머스] 소수 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 3개의 수를 더하여 소수인지 판별하기 위해 3중 반복문을 사용한다. 첫 번째 반복문은 처음부터 수가 3개 남을 때까지 인덱스를 사용할 수 있고 for i in range(len(nums) - 2) 두 번째 반복문은 첫 번째 반복문의 다음 수부터 수가 2개 남을 때까지 인덱스를 사용할 수 있고 for j in range(i + 1, len(nums) - 1) 세 번째 반복문은 두 번째 반복문의 다음 수부터 수가 마지막 수까지 인덱스를 사용할 수 있다. for k in range(j.. 2023. 7. 25.
[백준] 2579번 : 계단 오르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 이전에 밟은 계단의 결과에 따라 다음 밟을 수 있는 계단이 정해진다. 따라서 이전에 밟은 계단의 결과를 활용하여 문제를 해결하는 다이나믹 알고리즘을 사용해야 한다. 계단은 1칸 올라가거나 2칸을 바로 올라갈 수 있지만 1칸씩 3칸을 연속으로 밟을 수 없다. 하여 계단 3칸을 확인해 다음 계단을 선택해야 한다. 3칸의 계단을 봤을 때 계단을 올라가는 경우는 1칸을 올라간 뒤, 2칸을 올라가는 방법과 2칸을 올라간 뒤, 1칸을 올라가는.. 2023. 7. 25.
[백준] 10814번 : 나이순 정렬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 회원의 수를 입력받는다. N = int(sys.stdin.readline()) 나이와 이름을 저장할 리스트를 생성한다. li = list() 회원 수만큼 반복하며 for _ in range(N) 나이와 이름을 문자열 형식으로 한 줄로 입력받는다. age, name = map(str, sys.stdin.readline().split()) .. 2023. 7. 24.
[프로그래머스] 할인 행사 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 원하는 제품을 모두 구매할 수 있는 날 중 가장 빠른 날이 아니라 모두 구매할 수 있는 날의 개수를 구하는 문제입니다. 날짜를 계산하고 반복문에서 사용할 변수를 생성하고 초기화한다. i = 0 원하는 제품의 수량을 나타낸 배열의 원소 전체 합은 모두 10이므로 해당 날 할인하는 제품의 수가 10개 이상일 경우 반복문을 실행한다. while (len(discount) - i >= 10) 할인하는 제품에서 원하는 제품의 품목별 개수를 세어 저장할 리스트를 생성하고 초기화.. 2023. 7. 24.
[프로그래머스] 모의고사 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 수포자마다 찍는 규칙을 리스트로 저장해 둔다. people1 = [1, 2, 3, 4, 5] people2 = [2, 1, 2, 3, 2, 4, 2, 5] people3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] 수포자마다 정답을 맞힌 횟수를 저장할 변수를 생성하고 초기화한다. count1 = 0 count2 = 0 count3 = 0 입력받은 문제의 정답을 인덱스를 활용해 하나씩 추출한다. for i in range(len(answers)) 만약 첫 번째 수포자.. 2023. 7. 24.
728x90
반응형