본문 바로가기
728x90
반응형

전체 글510

[백준] 2903번 : 중앙 이동 알고리즘 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 과정을 반복할 때마다 생기는 점의 개수를 구하는 문제이다. 생기는 점의 개수에는 규칙이 존재하는데, 이는 해당 과정을 반복할 때마다 한 변에 추가로 생기는 점의 개수는 이전 한 변의 중앙 지점의 개수만큼 점이 추가로 생긴다. 처음에는 한 변에 점이 2개이다. 이후 과정을 1회 수행하면 변의 가운데에 점이 하나 생겨 한 변에 점이 3개가 된다. 이후 또 과정을 1회 수행하면 한 변이 2개의 구역으로 나누어져 있는.. 2023. 10. 17.
[백준] 2720번 : 세탁소 사장 동혁 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 각 거스름돈을 최소한의 동전 개수로 거슬러 주어야 하는 문제이다. 각 동전은 달러로 단위가 표시되어 있지만, 입력으로 받아지는 거스름돈의 단위는 센트이다. 하여 각 동전의 단위를 센트로 바꾸어 저장해 두고, 동전의 개수를 최소한으로 줘야 하므로 큰 금액부터 개수를 구한다. 큰 금액의 동전부터 거슬러줄 동전의 개수를 출력하고, 남은 금액을 새로 저장한다. 이 행동을 마지막 동전까지 반복하면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import.. 2023. 10. 16.
[파이썬으로 하는 데이터 분석] 10. Aggregation - 우당탕탕 개발자 되기 프로젝트 Aggregation은 집합 연산을 수행하는 메서드입니다. 하여 합계를 나타내는 sum, 최댓값을 나타내는 max, 최솟값을 나타내는 min, 평균을 나타내는 mean 등 다양한 연산들을 나타냅니다. 각 함수를 사용하면 각 column 마다 해당되는 값을 출력해 줍니다. 여기서 mean() 함수를 사용했을 때 이름이 들어있는 column 때문에 경고가 뜨는 것을 볼 수 있습니다. 숫자로만 구성되어 있는 값들의 평균만 나타낼 경우 원하는 column 만 묶어서 연산을 적용시켜 주면 됩니다. 2023. 10. 15.
[프로그래머스] 전력망을 둘로 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 전력망을 하나씩 모두 끊어보며 상황별로 나눠지는 두 전력망의 개수 차이를 구하는 문제이다. 전력망을 두 그룹으로 나눴을 때 각 그룹에 있는 송전탑의 개수를 bfs 방법으로 구한다. 원래 전력망은 하나로 이어져있기 때문에 하나의 전선을 끊으면 무조건 두 그룹으로 나뉜다. 하여 한 번의 bfs으로 두 그룹의 송전탑 개수를 구할 수 있다. 두 그룹의 송전탑 개수의 차를 경우마다 저장하고 이 중 가장 작은 값을 구하면 된다. 너비우선탐색을 할 때 deque 자료구조를 사.. 2023. 10. 15.
[파이썬으로 하는 데이터 분석] 9. 인덱스 - 우당탕탕 개발자 되기 프로젝트 먼저 DataFrame을 하나 생성해 줍니다. DataFrame을 생성할 때 인덱스를 따로 지정해주지 않으면 default로 정수형으로 0번부터 지정됩니다. 인덱스의 원래 용도는 row 구별을 위한 것이라 인덱스는 유일성이 존재해야 합니다. 만약 이미 생성된 DataFrame의 인덱스를 변경하기 위해서는 set_index() 메서드를 활용하면 됩니다. DataFrame 이름.set_index('column 이름') 형식으로 작성하면 지정한 column의 값을 인덱스로 바꿔줍니다. 만약 set_index() 메서드를 적용한 상태에서 한 번 더 다른 column 이름으로 set_index() 메서드를 사용하면 이전 인덱스가 사라지게 되므로 사용하실 때 주의하시길 바랍니다. set_index() 메서드로 co.. 2023. 10. 14.
[백준] 11005번 : 진법 변환 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 10진법 수를 원하는 진법의 수로 바꾸는 문제이다. 우선 각 진법별 수를 0~9까지, A~Z까지 한 리스트에 저장한다. 10진법 수를 원하는 진법의 수로 나눈 나머지의 값을 인덱스 값으로 갖는 해당 문자를 저장하며 진법을 바꾼다. 이때 바꾼 결과는 거꾸로 저장되어 있기 때문에 최종 결과를 뒤집어 준다. 나머지를 추가한 뒤에는 해당 수를 진법 수로 나눈 몫의 결과로 새로 저장하며 0이 될 때까지 반복한다. ex) 8을.. 2023. 10. 14.
[프로그래머스] 기지국 설치 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전파를 전달해야 할 구간을 구하고 해당 구간에 최소한으로 설치할 기지국의 개수를 구여 모두 더해주면 된다. 각 구간별 설치할 기지국의 최소 개수를 구하여 더하는 결과를 반복하다가 마지막 기지국에서의 계산이 끝나 반복이 종료되면, 이후 남은 구간도 고려해야 한다. 하여 마지막에 제일 뒤쪽 남은 구간에 대한 기지국 설치 개수를 계산하여 더해주면 된다. 올림 함수인 ceil()를 사용하기 위해 math 모듈을 불러온다. import math 전파를 전달해야 할 구간의 시작.. 2023. 10. 13.
[백준] 2745번 : 진법 변환 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 입력받은 진법의 수를 10진수로 변환하는 문제이다. 0부터 Z까지 총 36진법까지 존재하므로 해당 수를 리스트로 저장한다. 이는 입력받은 수를 정수로 표현한 값을 인덱스로 찾기 위함이다. 0 = 0, 1 = 1 ~ A = 10, B = 11 어떤 수를 10진수로 변환하려면 1의 자릿수부터 끝까지 반복하며 해당 진법의 0 제곱부터 자릿수 - 1 제곱까지 곱한 결과를 더해주면 된다. ex) 1101 2진수 -> 1 * 2**.. 2023. 10. 12.
[프로그래머스] 소수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 문자열로 입력된 숫자를 가지고 소수가 가능한 모든 숫자의 조합을 만든다. 모든 숫자의 조합을 구했으면 각 숫자를 하나씩 가져와 소수인지 판별한다. 모든 숫자의 조합을 만들 때는 순열(permutations) 함수를 활용해 각 자리별로 가능한 조합을 구한다. 가능한 숫자 조합을 구할 때 순열 함수를 사용하기 위해 permutations 모듈을 불러온다. from itertools import permutations 문자열로 입력받은 숫자를 개별로 모두 분리하여 리스트로.. 2023. 10. 11.
[백준] 2563번 : 색종이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 색종이를 붙이면서 겹치는 부분으로 고려하여 전체 색종이가 붙여진 면적을 계산하는 문제이다. 색종이를 붙일 도화지의 면적을 가로, 세로 100씩 생각하여 2차원 배열로 만든다. 이후 색종이를 붙일 때마다 붙여지는 면적을 1로 바꾼다. 이때 겹치는 부분이 생겨도 그대로 1로만 바꾸기 때문에 겹치는 부분에 대한 계산을 따로 하지 않아도 된다. 마지막에 0에서 1로 바뀐 면적만 계산해 주면 쉽게 결과를 구할 수 있다. sys.st.. 2023. 10. 10.
728x90
반응형