본문 바로가기
728x90
반응형

파이썬438

[프로그래머스] 불량 사용자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 불량 아이디를 정규식으로 바꾸는 것과 가능한 제재 아이디의 모든 경우를 찾는 것이 관건이다. 불량 아이디를 정규식으로 바꾸면 re.match() 함수를 사용해 쉽게 사용자 아이디가 불량 아이디인지 판별할 수 있다. 불량 아이디에서 * 문자가 특정 1개의 문자를 의미하므로 정규식의 . 문자로 바꾸어 줄 바꿈 문자를 제외한 모든 한 문자와 매치하는지 확인할 수 있다. 또한 사용자 아이디에서 불량 아이디의 개수를 뽑아 나열하는 모든 경우를 permuations() 함수로 .. 2023. 11. 4.
[백준] 24264번 : 알고리즘 수업 - 알고리즘의 수행 시간 3 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 입력의 크기를 입력받는다. n = int(sys.stdin.readline()) 1부터 n까지 중첩 반복문이므로 수행 횟수는 n * n이다. 수행 횟수를 출력한다. print(n ** 2) 수행 횟수를 다항식으로 나타내었을 때 n의 제곱이다. 다항식의 최고차항의 차수는 2이다. print(2.. 2023. 11. 3.
[백준] 14215번 : 세 막대 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stidn.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 세 막대의 길이를 입력받는다. a, b, c = map(int, sys.stdin.readline().split()) 세 막대 중 길이가 가장 긴 막대의 길이를 저장한다. MAX = max(a, b, c) 나머지 두 막대의 길이의 합을 저장한다. SUM = (a + b + c) - MAX 삼각형이 되려면 가장 긴 변의 길이가 나머지 두 변의 길이 합보다 작아야 한다. 따라서 제일 긴 막대의 길이가 나머지 두 막대의 길이의 합보다 작으면 if (MAX.. 2023. 11. 2.
[프로그래머스] 스티커 모으기(2) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 스티커에 적힌 숫자의 합이 크도록 스티커를 모으는 문제이다. 한 스티커를 떼면 양옆의 스티커를 뗄 수 없으므로 스티커를 뗄 수 있는 방법은 때고 안 떼는 방법(OX)과 안 때고 떼는 방법(XO)이 있다. 두 경우를 각각 DP 알고리즘을 활용하여 해결한다. DP 알고리즘을 사용하는 이유는 스티커를 하나씩 땔 때 이전에 때었던 스티커의 위치와 값에 영향을 받기 때문이다. 스티커를 떼면 양쪽 스티커를 뗄 수 없기에 현재 스티커를 뗄 지에 대한 위치 영향을 받는 것이고땐 스.. 2023. 11. 1.
[백준] 5073번 : 삼각형과 세 변 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 세 변의 길이를 모두 0으로 받으면 종료하기 위해 무한 반복문을 사용한다. while (True) 세 변의 길이를 입력받는다. a, b, c = map(int, sys.stdin.readline().split()) 만약 세 변의 길이가 모두 0이면 종료한다. if (a == b == c == 0): break 만약 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 작으면 if (max(a, b, c) .. 2023. 10. 31.
[프로그래머스] 124 나라의 숫자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 10진법을 124로 구성된 3개의 수로 변환하는 문제이다. 3개의 수를 가지고 바꾸는 것은 쉽게 3진법이라고 할 수 있다. 3진법은 보통 012로 구성되어 있지만 위 문제는 124를 가지고 수를 변환해야 한다. 그냥 3진법으로 바꾸려면 3으로 나눈 나머지를 저장하고 몫으로 수를 새롭게 바꾸어 0이 될 때까지 반복하면 된다. 하지만 해당 문제에서 수가 3으로 나누어 떨어지는 수이면 수를 3으로 나눈 몫이 아니라 몫에서 1을 빼준 값으로 바꿔야 한다. 124로 변환한 결.. 2023. 10. 30.
[백준] 10101번 : 삼각형 외우기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 삼각형의 세 각의 크기를 입력받는다. a = int(sys.stdin.readline()) b = int(sys.stdin.readline()) c = int(sys.stdin.readline()) 세 각의 합이 180일 경우 if (a + b + c == 180) 세 각의 크기가 모두 같으면 if (a == b == c) Equilateral를 출력한다. print('Equilateral') 반면 세 각의.. 2023. 10. 29.
[프로그래머스] 연속된 부분 수열의 합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 합을 만족시키는 부분 수열을 모두 구하고 부분 수열 중 가장 길이가 짧은 부분 수열, 길이가 동일하다면 가장 앞쪽 부분 수열을 찾는 문제이다. 배열에서 원소를 하나씩 추가시키며 합을 확인한다. 합이 아직 작을 경우 뒤 원소를 하나 추가시키고 클 경우 앞 원소를 하나 줄이며 부분 수열을 지정한다. 만약 합이 일치할 경우 해당 부분 수열의 시작 인덱스와 끝 인덱스를 저장하고 앞 원소를 하나 줄인다. 가장 길이가 짧은 부분 수열을 찾아야 하므로 두 인덱스 사이의 차가 작은.. 2023. 10. 28.
[백준] 9063번 : 대지 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 9063번: 대지첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 1. 문제 설명2. 풀이과정해당 문제는 옥구슬을 발견한 지점을 보고 직사각형 모양의 대지 면적을 계산하는 문제이다. 각 x축과 y축 변의 길이는 각 x좌표와 y좌표의 최댓값에서 최솟값을 뺀 값이다. 각 변의 길이를 구한 뒤 곱하여 대지의 면적을 구한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys점의 개수를 입력받는다. N = int(sys.stdin.readline())점의 x좌표를 저장.. 2023. 10. 27.
[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 두 큐의 원소를 제거하고 추가하는 작업을 반복하면서 두 큐의 합이 동일해지도록 만드는 문제이다. 큐의 구조에 따라 제일 앞 원소를 빼서 제일 뒤에 추가한다. 처음에 두 큐의 원소 개수는 동일하다. 하여 두 큐가 작업을 수행하다가 작업을 처음 큐의 원소 개수에 4배만큼 수행하게 되면 처음 큐로 돌아오게 된다. 따라서 작업 횟수는 처음 큐의 원소 개수에 4배보다 작아야 하며 이와 같거나 커질 경우에는 절대로 각 큐의 원소 합을 같게 만들 수 없는 경우인 것이다. 또한 매.. 2023. 10. 26.
728x90
반응형