Loading...

[swexpert] 1959. 두 개의 숫자열 (python)

짧은 쪽, 긴쪽 배열을 구분한 후 긴 배열에서 인덱스를 0부터 (긴배열길이-짧은 배열-1) 만큼 이동하면서 짧은 배열의 길이만큼 더해준다 합이 마이너스가 나올 수가 있어서 결과 초기값을 어떻게 줄까 고민하다가 배열에 결과 합을 다 넣고 최대값을 리턴해주는 방식으로 구현했습니다. t=int(input()) for i in range(1,t+1): print(f'#{i}',end=' ') n,m=map(int,input().split()) a=list(map(int,input().split())) b=list(map(int,input().split())) sum = [] if n>m: for j in range(0,n-m+1): temp = 0 for k in range(m): temp+=b[k]*a[j+k..

[swexpert] 1970. 쉬운 거스름돈 (python, java)

그리디 대표 알고리즘입니다 가장 큰 금액부터 나누면 잔돈 개수는 가장 적게 나옵니다 >

[swexpert] 1966. 숫자를 정렬하자 (python, java)

1. 파이썬 풀이 배열을 입력받고 정렬한 배열의 값을 *로 가져와 출력한다 t=int(input()) for i in range(1,t+1): n=int(input()) arr=list(map(int,input().split())) print(f'#{i}',end=' ') print(*sorted(arr)) 2. 자바 import java.util.Arrays; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); for (int tc = 1; tc

[swexpert] 1961. 숫자 배열 회전 (python)

zip은 배열의 가로 세로 배열을 바꿔주고 *은 리스트 내부 값을 가져온다 *[(1,2,3)] => (1,2,3) 이렇게 된다 t=int(input()) for i in range(1,t+1): n=int(input()) matrix=[input().strip().split() for _ in range(n)] # 배열의 값 입력 받음 result=[[] for _ in range(3)] # 결과(리턴 값) for idx in range(3): new_arr=[] # 뒤집을 배열 for z in zip(*matrix): #배열의 행열 뒤집기 new_arr.append(list(reversed(z))) #뒤집은 행을 넣어준다 result[idx].append(''.join(list(reversed(z)))..

[swexpert] 1948. 날짜 계산기 (python)

뒤에 나오는 날짜의 총합은 이전 월까지의 일수의 합 + 현재 달의 일수 이전 날짜의 총합도 마찬가지로 그렇게 구해준다 현재 날짜는 1부터 시작한다 날짜의 총합을 빼주면 날의 차이가 나타난다 t=int(input()) date=[31,28,31,30,31,30,31,31,30,31,30,31] for i in range(1,t+1): print(f'#{i}',end=' ') m,d1,n,d2=map(int,input().split()) sum=1 for x in range(n-1): sum+=date[x] sum+=d2 sum-=d1 for x in range(m-1): sum-=date[x] print(sum)

[swexpert] 1986. 지그재그 숫자 (python, java)

1. 파이썬 n이 최대 10이여서 미리 더한 값을 구해놓고 입력받은 n에 해당하는 숫자를 출력해줬다 t=int(input()) dp=[0]*11 for i in range(1,11): if i%2: dp[i]=dp[i-1]+i else: dp[i]=dp[i-1]-i for i in range(1,t+1): n=int(input()) print(f'#{i} {dp[n]}') 2. 자바 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); sc.nextLine(); for (int tc = 1; tc

[swexpert] 1983. 조교의 성적 매기기 (python, java, D2)

10명이면 각 등급을 한 명당(10/10) 다르게 받게 된다 현재의 위치 (0부터 시작)을 n/10을 나눈 것이 각 등급의 인덱스를 가르킨다 내가 한 방법은 전체 점수(내림차순 기준)과 학생 번호를 같이 저장해서 번호를 찾아 해당 인덱스를 반환하는 식으로 풀었다 *추가 번호가 k인 학생이랑 같은 총점인 다른 학생이 없으므로 학생 번호를 저장할 필요없이 total 점수만 기억해놓고 점수가 같은지 비교하는 방법으로 구현하는 것이 더 좋을 듯하다 1. 파이썬 풀이 t=int(input()) rank=['A+','A0','A-','B+','B0','B-','C+','C0','C-','D0'] for i in range(1,t+1): n,k=map(int,input().split()) arr=[] for num ..

[swexpert] 1984. 중간 평균값 구하기 (python, java)

round로 반올림할 시 실수값으로 표현되길래 다시 int를 써서 정수로 변환해주었다 1. 파이썬 풀이 t=int(input()) for i in range(1,t+1): a=list(map(int,input().split())) a.sort() print(f'#{i} {int(round(sum(a[1:-1])/(len(a)-2)))}') 2. 자바 풀이 sum을 double로 해서 실수값으로 만들어주는 것이 포인트 package com.ssafy.edu; import java.util.Arrays; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(S..

[swexpert] 1989. 초심자의 회문 검사 (python, java)

문자열 끝에 엔터도 입력되므로 제거해준 후 뒤집어서 같은지 비교해진다 1. 파이썬 t=int(input()) for i in range(1,t+1): s=input().strip() if s==s[::-1]: print(f'#{i} 1') else: print(f'#{i} 0') 2. 자바 new StringBuffer로 뒤집을 수 있는데 다시 toString()으로 해줘야 같은지 아닌지 비교가 되는 문자열로 변환된다. import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); sc.nextLine(); ..

[swexpert] 2001. 파리퇴치 (python, java, D2)

현재 위치로 부터 m칸의 크기 안에 있는 위치의 값들을 모두 더해준다 모든 위치를 검사해준다 범위는 전체 배열 길이-m까지 시작위치로 잡고 해당 위치에서 가로 세로 현재위치+m위치까지 검사해준다 1. 파이썬 풀이 t=int(input()) for i in range(1,t+1): result = 0 n,m=map(int,input().split()) arr=[] for _ in range(n): a=list(map(int,input().split())) arr.append(a) for y in range(0,n-m+1): //현재 위치, 여기서부터 m칸을 검사하므로 인덱스가 넘어가지 않게 주의 for x in range(0,n-m+1): sum=0 for yy in range(y,y+m): // 현재 위..