Loading...

[swexpert] 2369. B theater (java)

풀이. 극장에는 n줄으로 이루어져있다 l ~ r 만큼 사람들이 연속으로 앉아있다 인원수는 r-l+1이다. n줄의 인원수를 더해서 출력하면 된다. package com.ssafy.edu; 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 i = 0; i < t; i++) { int n=sc.nextInt(); long sum=0; for (int j = 0; j < n; j++) { int l=sc.nextInt(); int r=sc.nextInt(); sum+=r-l+1; } Sy..

[swexpert] 1859. 백만장자 프로젝트 (java)

함정: 데이터 범위 초과 푸는 방법: 뒤에서 부터 돌면서 풀기 1) 풀이 3 5 9의 경우 뒤집어서 9 5 3 으로 본다 1. max_value를 갱신해나간다 2. max_value - 현재 값을 결과값으로 더해 나간다. 뒤에서부터 도는 이유는 나중에 나오는 가장 큰 값을 찾기 위해서이다. current_value 9 5 3 max_value 9 9 9 diff=max_value-current_value 0 4 6 답은 모든 차이값 diff를 더한 값이다. 2) 함정 n은 총 1000000로 10^6이고 각 금액의 최대값은 10000이다. 즉 모든 금액이 10000이고 n=10^6이라면 모든 값을 다 더한 결과값이 최대 10^4*10^6 = 10^10 로 메모리가 초과하게 된다. (int의 크기는 최대 ..

[swexpert] 2058. 자릿수 더하기 (java, javascript)

1. 자바 풀이 문자열은 바로 int변환이 되지만 문자char는 되지 않길래 -'0'으로 변환했다 import java.util.Arrays; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); String s=Integer.toString(n); int sum=0; for(int i=0; iacc+Number(cur),0); }

[swexpert] 2063. 중간값 찾기 (java)

배열을 입력받고 정렬 후 n/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 n=sc.nextInt(); int[] a=new int[n]; for(int i=0;i

[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] 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(); ..