본문 바로가기

전체 글229

[프로그래머스] Level1 나누어 떨어지는 숫자 배열(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12910 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(arr, divisor): answer = [] for i in arr: if i % divisor == 0: answer.append(i) if len(answer) == 0: return [-1] else: return sorted(answer) 2023. 1. 29.
[프로그래머스] Level1 가운데 글자 가져오기(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): if len(s) % 2 == 0: return s[len(s)//2-1:len(s)//2+1] else: return s[len(s)//2] 문자열 슬라이싱을 이용해서 풀었슴~ 2023. 1. 29.
[프로그래머스] Level1 2016(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 cal = {1:'FRI',2:'SAT',3:'SUN', 4:'MON',5:'TUE',6:'WED',0:'THU'} def solution(a, b): day = 0 while (a-1) != 0: if (a-1)in[1,3,5,7,8,10,12]: day+= 31 elif (a-1) in[4,6,9,11]: day+= 30 else: day+=29 a -= 1 day +=.. 2023. 1. 29.
[프로그래머스] Level1 폰켓몬(with python) https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(nums): poket = set(nums) if len(poket) < len(nums)//2: return len(poket) else: return len(nums)//2 조건1) 같은 종류 = 같은 번호 조건2) N/2 만큼을 뽑을 것이고, 최대한 많은 종류를 뽑아야 함 조건3) num2의 길이는 항상 짝수로 주어짐 1. set을 이용해서 num.. 2023. 1. 29.
#1 문자열 뒤집는 방법(문자열 슬라이싱, reverse) 1. 문자열 슬라이싱 [start : end : step] #start 부터 end-1 까지 step만큼건너뛰면서 아래 예시의 example 변수에는 "abcde"가 대입되어있음 [::-1] 역순으로 한 개씩 출력 ex) example[::-1] #"edcba" 역순으로 문자열 출력 ex) example[2:0:-1] #"cb" 2. reverse() 함수 이용하기 reverse 는 list 타입에서 제공되는 함수이며, 값을 반환하지 않고 해당 list()를 뒤집는다. 당연히, list타입만 이용가능하다. (str, tuple x) example = ["a","b","c"] example2 = example.reverse() print(example2) #None print(example) #['c', .. 2023. 1. 28.
[백준] 9093번 단어 뒤집기(with python) https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) arr = [] for i in range(n): word = input().split() for i in word: i = list(i) n = len(i) for j in range(n//2): i[j],i[n-1-j] = i[n-1-j],i[j] print(''.join(i),end=' ') 단어의 제일 첫 스펠링과 마지막 스펠링의.. 2023. 1. 28.
[백준] 10610번 30(with python) https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 1. 내가 작성한 코드 from itertools import permutations import sys n = sys.stdin.readline() #처음에 주어지는 수 arr = [] for j in permutations(n,len(n)): #순열로 모든 수 append j = list(j) #순열은 튜플 형식이기 때문에 list로 바꿔주기 k = 1 while k>0: result = 0 f.. 2023. 1. 27.
[백준] 2875번 대회or인턴(with python) https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 1. 내가 작성한 코드 n, m, k = map(int, input().split()) cnt = 0 while n+m-k >= 0: if n >= 2 and m >= 1 and (n-2)+(m-1) >= k: cnt+=1 n-=2 m-=1 else: print(cnt) break else: print(cnt) n + m - k > 0 일때라는 조건을 하나 더 입력을 했는데, 사실 아래 조건을 만족한다면 n + m - k > 0 조건도 자연스럽게 맞춰지기 때문에 굳.. 2023. 1. 27.
[알고리즘] 그리디 + 문제풀이 그리디 알고리즘( = 탐욕 알고리즘) 현재 상황에서 제일 좋아보이는 값을 선택하여 결과를 도출 지역적으로는 최적이지만 전체적으로 최적의 해가 아닐 수 있음 계산 속도가 매우 빠름 정당성 판별 현재 선택이 다음 선택에 여향을 주지 말아야 함 매 순간의 최적의 해가 문제 전체에 대한 최적의 해여야 함 번호 문제 이름 Level 정답 여부 백준 2839 설탕 배달 실버4 X 20230126 백준 11399 동전 0 실버4 O 20230126 백준 2875 대회 or 인턴 브론즈3 O 20230127 백준 1946번 신입사원 실버1 O 20230210 백준 11399번 ATM 실버4 O 20230211 2023. 1. 27.