파이썬 11

[Programmers] 신규 아이디 추천 (파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 전체 코드 import re def solution(new_id): answer = '' # 1단계 id = new_id.lower() # 2단계 id = re.sub("[^a-z0-9-_.]", "", id) # 3단계 id = re.sub("\.{2,}", ".", id) # 4단계 id = re.sub("^\.|\.$", "", id) # 5단계 i..

PS/Python 2021.09.10

[Programmers] 표 편집 (파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 해당 문제는 Programemrs의 2021 카카오 채용연계형 인턴십 문제집에 속해 있는 문제입니다. 문제에는 총 4가지의 명령어가 존재하며, 입력으로 주어진 명령어를 차례로 모두 수행한 후 남아 있는 행과 삭제된 행을 출력하는 것이 이 문제의 목표입니다. 해당 문제는 정확성 테스트와 효율성 테스트가 따로 진행되..

PS/Python 2021.08.29

[Programmers] 거리두기 확인하기 (파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 해당 문제는 Programmers의 2021 카카오 채용연계형 인턴십 문제집에 속해 있는 ..

PS/Python 2021.08.27

[Programmers] 다단계 칫솔 판매(파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 이 문제는 Programmers의 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제집에 있는 문제로 Level 3에 해당되는 문제입니다. 해당 문제는 조직원, 각 조직원 별 추천인, 판매 직원, 각 판매에 대한 판매액이 입력 값으로 주어지며 모든 조직원의 수익을 계산하는 것이 목표입니다. 접근 방식 문제에 명시되어 있는 조건에 따라 구현을 ..

PS/Python 2021.07.24

[Programmers] 행렬 테두리 회전하기(파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 해당 문제는 Programmers의 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제집에 있는 문제로 Level 2에 해당되는 문제입니다. 해당 문제는 queries에 직사각형 범위의 좌표가 주어지면 범위의 테두리에 있는 숫자들을 시계방향으로 한 칸씩 회전시키며 회전시키는 각 회차마다 가장 작은 수들을 구하는 게 목표입니다. 접..

PS/Python 2021.07.18

[Programmers] 로또의 최고 순위와 최저 순위 (파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 해당 문제는 Programmers의 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제집에 있는 문제로 Level 1에 해당되는 문제입니다. 해당 문제에서는 입력 값으로 구매한 로또 번호(단, 몇몇 번호는 지워진 상태로 입력될 수 있음)와 당첨 번호가 주어지고 최대 등수와 최소 등수를 구하는 게 목표입..

PS/Python 2021.07.18

[백준] 14500 - 테트로미노 (파이썬, Python)

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 해당 문제의 분류는 구현입니다. 이 문제를 두 가지 종류의 해결하는 방법이 있는 거 같습니다. 1) 모든 테트로미노 경우의 수를 구하고 칸마다 대입해보기 2) 이동 거리를 4 칸으로 제한하고 탐색을 진행하기 저는 위 방법 중 2번 방법으로 시도했습니다. 제 코드는 아래와 같습니다. 해당 코드는 Python3로 제출 시 시간 초과가 발생하여 PyPy3로 제출했습니다. 전체 코드 import sys ..

PS/Python 2021.06.05

[백준] 14499 - 주사위 굴리기(파이썬, Python)

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 해당 문제는 구현문제입니다. 주사위를 굴려서 각 회차마다 주사위의 윗 면에 쓰인 수를 출력하는 게 이 문제의 목적입니다. 이 문제의 핵심은 주사위의 상태를 저장하는 방법을 구현하는 것이라 생각합니다. 저는 3 X 3 배열에 주사위의 상태를 1 X 6 배열에 각 면에 수를 저장하는 방법을 택했습니다. 주사위의 상태를 저장하는 방법은 ..

PS/Python 2021.05.30

[백준] 17144 - 미세먼지 안녕!(파이썬, Python)

https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 해당 문제는 문제의 설명대로 1) 미세먼지를 확산시킨다. 2) 공기 청정기를 작동시킨다. 이 두 가지를 구현하는 문제이다. 저는 이 문제를 Python3로 제출할 때 시간 초과가 났습니다. 제 코드에 비효율적인 부분이 있는 거 같습니다. 하지만 구현 문제인 만큼 정확성을 확인하고 싶었고 아래의 글을 참고한 후 PyPy3로 제출을 했습니다. https://www.acmicpc.net/board/v..

PS/Python 2021.05.30

[백준] 17140 - 이차원 배열과 연산(파이썬, Python)

https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 해당 문제는 조건에 따라 각 행 또는 열에 연산을 반복하면서 주어진 위치에 지정한 값이 있는지 확인하는 문제입니다. 저는 이 문제를 풀 때 각 행과 열의 최대 길이가 100이 된다는 것에 집중했습니다. 처음부터 100 X 100 크기의 배열을 이용해서 작업을 했습니다.(행과 열의 길이를 맞추는 작업을 간단히 하기 위해 위와 같이 했지만 이것 때문에 속도가 느려진 게 아닌가 생각이 듭니..

PS/Python 2021.05.19