본문 바로가기
728x90
반응형

전체 글510

[프로그래머스] 2개 이하로 다른 비트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 함수에 넣을 수가 어떤 수인지에 따라 계산이 달라진다. 만약 정수가 짝수이면 무조건 2진수로 변환한 결과는 마지막 비트가 0이다. 하여 무조건 다음 수인 마지막 비트를 1로 바꾼 수가 함숫값이 된다. 하지만 정수가 홀수이면 2진수로 변환한 결과는 끝이 11이거나 01로 끝나게 된다. 하여 홀수일 경우에는 정수를 2진수의 뒤집은 결과를 구하고 앞에서부터 다음 비트와 비교하여 01이 나오면 함숫값은 두 비트를 바꾼 값이 된다. 2 = 10 → 3 = 11 | 4 = 10.. 2023. 10. 1.
[백준] 10811번 : 바구니 뒤집기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 바구니 개수와 바구니를 뒤집을 횟수를 입력받는다. N, M = map(int, sys.stdin.readline().split()) 각 바구니를 리스트로 생성한다. basket = list(i for i in range(N + 1)) 바구니를 뒤집을 횟수만큼 반복하며 for _ in range(M) 뒤집을 바구니의 구간을 입.. 2023. 9. 30.
[프로그래머스] 대충 만든 자판 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 작성할 문자열을 하나씩 불러온다. for i in targets 해당 문자열을 입력할 수 있는지 결과를 저장할 리스트를 생성한다. result = list() 작성한 문자열을 문자 하나씩 불러온다. for j in i 각 문자를 입력할 경우를 저장할 리스트를 생성한다. li = list() 자판을 하나씩 불러오며 for k in keymap 만약 불러온 자판으로 해당 문자를 입력할 수 있으면 if (j in k) 몇 번 눌러야 하는지 결과를 저장한다. li.append(k.ind.. 2023. 9. 29.
[백준] 10813번 : 공 바꾸기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 바구니 개수와 공을 옮길 횟수를 입력받는다. N, M = map(int, sys.stdin.readline().split()) 각 바구니에는 각 바구니의 번호와 같은 공이 들어있다. basket = list(i for i in range(N + 1)) 공을 옮길 횟수만큼 반복하며 for _ in range(M) 공을 바꿀 바구니의 번.. 2023. 9. 28.
[프로그래머스] 2 x n 타일링 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제를 처음에 모든 경우마다 팩토리얼로 총경우의 수를 구했는데 시간초과 문제가 발생하였다. 하여 이전 결과를 활용하는 DP 알고리즘으로 해결하였다. 처음 n이 0일 때는 1가지, 1일 때는 1가지이다. 다음 n이 2일 때는 2가지, 3일 때는 3가지, 4일 때는 5가지로 증가한다. 결과를 나열해 보면 1-1-2-3-5-... 의 결과가 나오는데 이를 자세히 보면 다음 결과는 이전 결과와 그전 결과를 더한 결과가 된다. 1, 1, 1+1=2, 1+2=3, 2+3=5의 결과로 .. 2023. 9. 27.
[백준] 10810번 : 공 넣기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 1차원 배열에 관한 문제이다. 바구니에 공을 넣는데 각 바구니에는 하나의 공만 넣을 수 있기 때문에 공이 있다면 바꿔 넣어야 한다. 하지만 그냥 매 순간 해당 번호의 공을 배열의 값으로 넣어주면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 바구니 개수와 공을 넣을 횟수를 입력받는다. N, M = map(int, sys.stdin.readline().spl.. 2023. 9. 26.
[프로그래머스] 숫자 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 최대로 많은 승리를 하여 최대 승점이 얼마인지 구하는 문제이다. 최대한 많이 승리하려면 작은 숫자를 작은 숫자로 이겨야 한다. 하여 두 팀의 숫자를 오름차순으로 정렬한 뒤, A 팀의 최솟값을 기준으로 B 팀의 숫자를 최솟값부터 비교하며 승리한다면 A 팀의 숫자를 제거하고 이를 B 팀의 마지막 숫자까지 반복하며 승리의 횟수를 계산한다. B 팀의 숫자가 뒤로 넘어갔다는 의미는 현재 A 팀의 최솟값보다 작거나 같다는 의미이므로 A 팀의 숫자가 제거되고 다음 A 팀의 최솟값.. 2023. 9. 25.
[파이썬으로 하는 데이터 분석] 6. Pandas 자료구조 - 우당탕탕 개발자 되기 프로젝트 Pandas의 자료구조에는 Series와 DataFrame이 있습니다. Series는 1차원 배열이라고 생각하면 되고 DataFrame은 2차원 배열이라고 생각하면 됩니다. Pandas의 자료구조를 알아야 하는 이유는 실제로 분석을 위해 수집한 데이터는 형태와 속성이 매우 다양하기 때문에 데이터들을 분석에 맞게 정형화시켜줘야 합니다. Series는 데이터가 순차적으로 나열된 1차원 배열의 형태로 파이썬에서 딕셔너리와 유사하다고 생각하면 됩니다. 파이썬에서 생성한 딕셔너리를 pandas 라이브러리의 Series() 메서드에 넣으면 딕셔너리가 Series로 바뀌게 됩니다. Series 자료구조를 살펴보는 이유는 DataFrame에서 원하는 위치를 뽑아 출력을 했을 때 Series 형태로 많이 나오기 때문에 .. 2023. 9. 24.
[백준] 11719번 : 그대로 출력하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 입력을 받는 방식에 관한 문제라고 할 수 있습니다. 파이썬에서 입력을 받을 수 있는 방법에는 크게 input() 함수와 sys.stdin 모듈의 함수가 있습니다. 전부터 사용해 왔던 sys.stdin.readline() 함수는 엔터키 입력 전까지 한 줄을 입력받는 것입니다. 하지만 이 문제는 입력받은 그대로를 계속 출력해야 하므로 한 줄만이 아니라 전체를 입력받아야 합니다. 하여 sys.stdin.r.. 2023. 9. 24.
[파이썬으로 하는 데이터 분석] 5. Matplotlib - 우당탕탕 개발자 되기 프로젝트 Matplotlib은 시각화 도구 중 하나입니다. Matplotlib 또한 라이브러리 설치를 해주고 import 해줘야 사용 가능합니다. Matplotlib 라이브러리 안 bar() 메서드는 막대그래프를 그려주는 메서드입니다. bar(x축에 사용할 데이터, y축에 사용할 데이터) 형식으로 작성하면 해당 데이터를 x축과 y축으로 갖는 막대그래프가 생성됩니다. 그래프는 각각 레이블, 제목, 크기 조정, 색 조정 등 다양한 추가 기능이 있는데 이러한 부분은 데이터 분석에 있어서 크게 중요한 부분이 아니므로 상황에 따라 적절하게 구글링 하여 사용하면 됩니다. scatter() 메서드는 산점도 그래프를 그려주는 메서드입니다. 산점도 그래프는 산포된 점으로 그래프를 그리는 것인데, 주로 분포를 나타낼 때 많이 사용.. 2023. 9. 23.
728x90
반응형