문제 설명 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세..
코딩테스트 문제풀기
문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 입출력 예 n return 3 2 5 5 풀이: 문제의 점화식 그대로 사용해서 구현 function solution(n) { let fi = [0, 1]; for(let i=2; i n번째 수 로 반환하여 배열을 사용하지 않고 구현
https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 정답코드: N=int(input()) ropes=[] ropes_num=[] for i in range(N): ropes.append(int(input())) ropes.sort() ropes.reverse() for i in range(N): ropes_num.append(ropes[i]*(i+1)) print(max(ropes_num))
https://www.acmicpc.net/problem/2775 정보: 0층은 호수가 인원수 // 각층의 1호는 인원수:1 // 점화식:dp[i+1][j+1]=dp[i][j+1]+dp[i+1][j] 3층 1 5 15 35... 2층 1 4 10 20 1층 1 3 6 10 0층 1 2 3 4 시간초과 코드: N=int(input()) def dp(floor,num): if floor==0: return num elif num==1: return 1 else: return dp(floor,num-1)+dp(floor-1,num) for i in range(N): floor=int(input()) num=int(input()) print(dp(floor,num)) 시간초과 이유: 재귀로 풀다보면 floor와..
https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 :0~9까지가 세트고 6과9는 같은 숫자로 본다. 총필요한 세트수는? 생각:0~9까지 카운트를 해주자 // 6하고 9만 따로 빼서 카운트하고 더해 2로 나누자! 코드: n=list(map(int,input())) cnt=0 number_list=[] m= n.count(6)+n.count(9) if m%2==0: cnt+=m//2 number_list.append(cnt) else: cnt+=m//2+1 number_list.append(cnt) for i in range(0,10): if..