본문 바로가기

개발일지/TIL

(101)
TIL 23-04-26 팀원과의 코드리뷰 - 수박수박수박수박수박수? 1. 프로그래머스 기초 트레이닝 - 길이에 따른 연산 문제점 문제 설명 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 20 1 ≤ num_list의 원소 ≤ 9 # num_list = 정수가 담긴 리스트 # return은 num_list의 길이가 11 이상이면 원소의 합을, 아니면 원소의 곱을 리턴 시도해 본 것들 sum, if문, for문 사용 def solution(num_list): answer = 1 for num in num_list: answer *= num return sum(num_list) if..
TIL 23-04-25 백준 알고리즘 - 수 정렬하기 3 1. 백준 알고리즘 - 설탕 배달 문제점 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는..
TIL 23-04-24 팀원과의 알고리즘 코드리뷰 - 양꼬치 1. 팀원과의 알고리즘 코드리뷰 - 양꼬치 문제점 def solution(n, k): YangKkochi = n * 12000 freeCoke = str(n)[:-1] coke = (k - int(freeCoke)) * 2000 answer = YangKkochi + coke return answer 반례 찾기 시도해 본 것들 문제가 생기는 부분 찾기 1 freeCoke = str(n)[:-1] coke = (k - int(freeCoke)) * 2000 이 부분에서 n이 9이하인 경우 freeCoke가 빈값으로 남아서 int로 형 변환시 에러 발생 if n < 10: freeCoke = 0 else: freeCoke = str(n)[:-1] if문 추가 def solution(n, k): YangKko..
TIL 23-04-23 백준 알고리즘 - 달팽이는 올라가고 싶다 1. 백준 알고리즘 - 달팽이는 올라가고 싶다 문제점 문제 설명 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. # 낮에 A미터 상승, 밤에 B미터 하락 정상 등반시 하락X # A = 올라감, B = 내려감, V= 정상 시도해 본 것들 while문..
TIL 23-04-22 백준 알고리즘 - 벌집 1. 백준 알고리즘 - 벌집 문제점 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때,벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. # 입력 도착점 # 출력 1에서 도착점까지의 최단거리 # 1을 둘러싼 육각형 # 1, 6, 12, 18, 2..
TIL 23-04-21 페어 프로그래밍 - 연속된 수의 합 1. 페어 프로그래밍 - 연속된 수의 합 문제점 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. # num은 숫자의 개수, total은 숫자의 합 # reutrn은 숫자의 리스트 # 배열은 오름차순으로 정렬 시도해 본 것들 기준점을 위한 중간값 찾기
TIL 23-04-20 페어 프로그래밍 - 직사각형 넓이 구하기 1. 페어 프로그래밍 - 직사각형 넓이 구하기 문제점 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요 문제를 이해하는 것부터 상당히 어렵다. if dots = [[-1, -1], [1, 1], [1, -1], [-1, 1]] # dots = [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] # return 은 직사각형의 넓이 # for, sort, max, min 시도해 본 것들 하드 코딩 2중 for문과 양수, 음수에 따른 조건문으로 x, y의 길이..
TIL 23-04-19 1. [페어프로그래밍] 프로그래머스 입문 - 숫자 찾기 문제점 정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요. # num , k는 int # return은 num에 k가 있으면 자릿수 return, # 없으면 -1 return 시도해 본 것들 num에서의 자릿수를 파악하기 위한 index 사용 index를 사용할 수 있도록 하기 위한 str로 형변환 index의 결과값이 0부터 시작하고 요구하는 return값은 1부터 시작하므로 index값에 +1 추가 num 안에 k가 없는 경우에 발생하는 ValueError를 해결하기 위해 try, except ..