분류 전체보기 86

2016년(JAVA)

1. 문제 2016년 1월 1일은 금요일이다. 두 수 a ,b를 매개변수로 하여 2016년 a월 b일이 무슨 요일인지 리턴하는 함수를 만드시오. 2. 제한 2016년은 윤년입니다. 3. 정답 class Solution { public String solution(int a, int b) { String answer = ""; int[] days = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int day = 1; int count = 0; int remainder; for(int i = 0; i < a - 1; i++) { count += days[i]; } count += (b - day); remainder = count % 7; switch (remai..

내적(JAVA)

1. 문제 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어지고 a와 b의 내적을 return하는 함수를 만드시오. 예를들어, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. 2. 제한 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 3. 정답 class Solution { public int solution(int[] a, int[] b) { int answer = 0; for (int i = 0; i < a.length; i++) { answer += (a[i] * b[i]); } return answer; } } 4. 설명 4-1. 길이가 같으므로 a의 길이만큼 for..

API 이해하기

1. API란? API는 한마디로 프로그램들이 서로 상호작용할 수 있는 창구이다. 서버와 db의 출입구 역할을 하는 통로라고 생각하면 된다. 2. 어떤식으로 API를 통해 서버와 클라이언트의 소통이 이뤄지는지 예를 통해 살펴보자. @app.route('/api/login', methods=['POST']) def create_token(): # 로그인 할때 input창에 입력한 id, pw를 가져와서 db에서 확인. id_receive = request.form['id_give'] pw_receive = request.form['pw_give'] result = db.banksalada.find_one({'id1': id_receive}) # 만약에 db에 실제로 id와 pw가 맞다면 if문 실행.(해싱..

2022.01.16

JWT(JSON Web Token) 이해하기

JWT는 JSON 형식의 토큰을 의미한다. 로그인하는 경우를 예로 들면서 어떤식으로 쓰이는지 알아보자. 1. 서버에서 토큰을 만드는데 쓰일 시크릿 키를 생성한다. (반드시 서버만 가지고 있을 필요는 없는 것 같다. 하지만 보안상 그게 적합하지 않을까 싶다.) 2. 사용자가 로그인을 할 때 입력한 id와 pw가 실제 DB에 있는 회원정보인지 확인한다. 3. 실제로 있는 회원이라면 서버가 토큰을 만든다. 4. 서버가 토큰을 사용자에게 지급한다. 5. 지급받은 토큰을 사용자는 가지고 있는다. 6. 사용자가 인증이 필요한 접근요청을 할 때 서버가 토큰을 요구한다. 7. 사용자가 토큰을 준다. 8. 서버는 그 토큰이 유효한지 확인한다. 9. 유효하다면 별도의 중복 로그인 절차 없이 바로 접근을 허가한다. 10. ..

2022.01.16

부족한 금액 계산하기(JAVA)

1. 문제 이용료는 price, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받는다. 예를들어, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300이다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액 money에서 얼마가 모자라는지를 return하는 함수를 완성하시오. 2. 제한 금액이 부족하지 않으면 0을 return한다. price : 1 ≤ price ≤ 2,500인 자연수이다. money : 1 ≤ money ≤ 1,000,000,000 count : 1 ≤ count ≤ 2,500인 자연수이다. 3. 정답 class Solution { public long solution(int price, int money, int count) { long result..

핸드폰 번호 가리기(JAVA)

1. 문제 String phone_number을 매개변수로 받아 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수를 만드시오. 2. 제한 phone_number는 길이가 4이상, 20이하이다. 3. 정답 class Solution { public String solution(String phone_number) { char [] answer = phone_number.toCharArray(); int length = answer.length; for (int i = length - 5; i >= 0; i--) { if ('0'

x만큼 간격이 있는 n개의 숫자(JAVA)

1. 문제 정수 x와 n을 매개변수로 하여 x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴하는 함수를 만드시오. 예를 들어 x가 3이고 n이 4이면 {3, 6, 9, 12}를 리턴하면 된다. 2. 제한 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 3. 정답 class Solution { public long[] solution(int x, int n) { // 배열의 크기를 n으로 만드는 코드. long[] answer = new long[n]; for(int i = 0; i < n; i++){ answer[i] = (long)x * (i+1); } return answer; } } 4. 설명 4-1. 배열의 크기가 n인 answer..

평균구하기(JAVA)

1. 문제 정수들의 배열 arr을 매개변수로 받고 배열 arr의 평균값을 return해라. 2. 제한 arr은 길이가 1이상, 100이하이다. arr의 원소들은 -10,000이상 10,000이하인 정수들이다. 평균은 소수점까지 출력해야한다. 3. 정답 class Solution { public double solution(int[] arr) { double answer; int sum = 0; int length = arr.length; for(int i = 0; i < length; i++){ sum += arr[i]; } answer = (double)sum/length; return answer; } } 4. 설명 4-1. arr의 길이만큼 for문을 돌려 배열 원소들의 합을 구한다. 4-2. 합을..

없는숫자더하기(JAVA)

1. 문제 0부터 9까지 랜덤한 숫자가 들어있는 int 배열 numbers를 매개변수로 받아 0부터 9까지 숫자들 중에서 빠져있는 숫자들의 합을 return하시오. 예를 들어 int[] numbers = {0, 1, 2, 3, 4, 6, 7, 8}이라면 5+9 = 14를 return하면 된다. 2. 제한 numbers의 모든수는 다릅니다. 3. 정답 class Solution { public int solution(int[] numbers) { int answer; int numbers_sum = 0; for(int i = 0; i < numbers.length; i++) { numbers_sum += numbers[i]; } answer = 45 - numbers_sum; return answer; }..