본문 바로가기

분류 전체보기94

[BOJ] 백준 2739번 구구단 (Java) 문제링크 https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); sc.close(); for(int i = 1; i < 10; i++){ System.out.println(num + " * " + i + " = " + (num * i)); } } } 2023. 1. 3.
[BOJ] 백준 2480번 주사위 세개 (Java) 문제링크 https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 나의코드 import java.util.Scanner; import java.lang.Math; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextI.. 2023. 1. 2.
[BOJ] 백준 2525번 오븐 시계 (Java) 문제링크 https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int m = sc.nextInt(); int c = sc.nextInt(); sc.close(); int hour = c.. 2023. 1. 1.
[BOJ] 백준 2884번 알람 시계 (Java) 문제링크 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int m = sc.nextInt(); sc.close(); if(m < 45){ m = m + 15; if(h == 0){ h = 23; }e.. 2022. 12. 31.
[BOJ] 백준 14681번 사분면 고르기 (Java) 문제링크 https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); sc.close(); if(a > 0 && b > 0){ System.out.print("1"); }else if(a 0){ System.out.print("2"); }else if(a < .. 2022. 12. 30.
[BOJ] 백준 2753번 윤년 (Java) 문제링크 https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); sc.close(); if(a % 400 == 0){ System.out.print("1"); }else if((a % 4 =.. 2022. 12. 29.
[DailyLog] A problem occurred configuring root project 'hello-spring'. 상황 Spring Initializr에서 프로젝트 생성 후 IntelliJ에서 실행을 했더니 다음과 같은 무시무시한 오류가 떴다. 더보기 A problem occurred configuring root project 'hello-spring'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.0. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.0 > No matching variant of o.. 2022. 12. 15.
[BOJ] 백준 9498번 시험 성적 (Java) 문제링크 https://www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); sc.close(); if(a >= 90){ System.out.print("A"); }else if(a >= 80){ System.out.print("B"); .. 2022. 11. 17.
[BOJ] 백준 1330번 두 수 비교하기 (Java) 문제링크 https://www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); sc.close(); if(a > b){ System.out.print(">"); } else if(a == b){ System.out.print("=="); }else if(a < b){ System.out.. 2022. 11. 16.
[BOJ] 백준 25083번 새싹 (Java) 문제링크 https://www.acmicpc.net/problem/25083 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net 나의코드 public class Main{ public static void main(String[] args){ System.out.printf(" ,r'\"7\nr`-_ ,' ,/\n \\. \". L_r'\n `~\\/\n |\n |"); } } 2022. 11. 15.
[BOJ] 백준 10172번 개 (Java) 문제링크 https://www.acmicpc.net/problem/10172 2022. 11. 14.
[BOJ] 백준 10171번 고양이 (Java) 문제링크 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 나의코드 public class Main{ public static void main(String[] args){ System.out.print("\\ /\\\n ) ( \')\n( / )\n \\(__)|"); } } 2022. 11. 13.
[BOJ] 백준 2588번 곱셈 (Java) 문제링크 https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a, b, c, d, e; a = sc.nextInt(); b = sc.nextInt(); sc.close(); c = a * (b % 10); d = a * (b % 100 / 10); e = a * (b / 100); System.out.println(c); System.. 2022. 11. 12.
[BOJ] 백준 10430번 나머지 (Java) 문제링크 https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); sc.close(); System.out.println((a + b) % c); System.out.println(((a % c) + (b % c)) % c); Sy.. 2022. 11. 11.
[BOJ] 백준 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 (Java) 문제링크 https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int king = 1; int queen = 1; int rook = 2; int bishop =2; int knight = 2; int pawn = 8; System.out.print.. 2022. 11. 10.
[BOJ] 백준 18108번 1998년생인 내가 태국에서는 2541년생?! (Java) 문제링크 https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a; a = sc.nextInt(); sc.close(); System.out.print(a - 543); .. 2022. 11. 9.
[BOJ] 백준 10926번 ??! (Java) 문제링크 https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String a = ""; a = sc.next(); sc.close(); a = a + "??!"; System.out.print(a); } } 2022. 11. 8.
[BOJ] 백준 10869번 사칙연산 (Java) 문제링크 https://www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a, b; a = sc.nextInt(); b = sc.nextInt(); sc.close(); System.out.println(a + b); System.out.println(a - b); System.out.println(a.. 2022. 11. 7.
[BOJ] 백준 1008번 A/B (Java) 문제링크 https://www.acmicpc.net/problem/1008 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); double a, b; a = sc.nextDouble(); b = sc.nextDouble(); sc.close(); System.out.print(a / b); } } 문제를 보면 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이라고 하였다. 따라서 Double 타입의 .. 2022. 11. 6.
[BOJ] 백준 10998번 A×B (Java) 문제링크 https://www.acmicpc.net/problem/10998 10998번: A×B 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a, b; a = sc.nextInt(); b = sc.nextInt(); sc.close(); System.out.print(a * b); } } 2022. 11. 5.
[BOJ] 백준 1001번 A - B (Java) 문제링크 https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의 코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a, b; a = sc.nextInt(); b = sc.nextInt(); sc.close(); System.out.print(a - b); } } 정수를 입력 받는 Scanner 클래스를 사용하였다. sc 이름으로 객체를 생성하고 정수 a와 b를 입력 받았다. sc.close( );를.. 2022. 11. 4.
[DailyLog] Postman Status: 401 Unauthorized 상황 간단한 프로젝트를 위한 Spring MVC 계층을 만들고 분명 포스트맨으로 요청과 응답을 잘 주고 받는 것을 확인하였다. Spring Security 의존성만 더 추가된 팀원의 프로젝트를 나의 로컬로 pull 하였다. 그런데 갑자기 포스트맨이 응답이 없어지고 포스트맨에 'Status: 401 Unauthorized' 에러가 떴다. Unauthorized를 보니 Spring Security 의존성과 관련된 문제인 것 같다. 해결 기존의 작업을 이어나가기 위해 두 가지 방법을 알아냈다. 첫 번째 방법은 위 의존성을 주석처리하고 작업을 진행하는 것이다. 두 번째 방법은 @SpringBootApplication 옆에 (exclude = {SecurityAutoConfiguration.class})을 추가하.. 2022. 10. 27.
[BOJ] 백준 1000번 A + B (Java) 문제 링크 https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의 코드 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); // (1) int a, b; a = sc.nextInt(); b = sc.nextInt(); System.out.println(a + b); } } 정수를 입력받기 위해 Scanner 클래스를 사용하였다. 먼저 (1)과 같이 sc라는 이름으로 객체를 생성하였다. 참고로 System.in은 .. 2022. 10. 13.
[BOJ] 백준 10718번 We love kriii (Java) 문제 링크 https://www.acmicpc.net/problem/10718 10718번: We love kriii ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박 www.acmicpc.net 나의 코드 public class Main{ public static void main(String[] args){ System.out.println("강한친구 대한육군"); System.out.print("강한친구 대한육군"); } } 두 줄에 걸쳐 "강한친구 대한육군"을 반복 출력해야하는 생뚱맞은 문제이다. 메인 클래스 .. 2022. 10. 12.
[Spring] 프록시 서버 Proxy Server 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 말한다. 즉, 클라이언트가 서버와 연결될 때 서버에 바로 접근하지 않고 자신을 통해 접근할 수 있도록 해주는 대리 역할을 하는 서버이다. 프록시 서버는 위치에 따라서 Forward Proxy와 Reverse Proxy 두 가지로 나뉜다. Forward Proxy 클라이언트에 가까이 위치한 프록시 서버를 Forward Proxy라고 한다. Forward Proxy는 클라이언트가 동일한 요청을 보낼 때 서버에 재요청을 하지 않고 캐시에 저장해놓은 결과 데이터로 응답한다. 따라서 요청 결과를 클라이언트에게 빠르게 전달할 수 있는 장점이 있다. 또한 서버에.. 2022. 10. 11.
[BOJ] 백준 2557번 Hello World (Java) 문제 링크 https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 나의 코드 public class Main{ public static void main(String[] args){ System.out.print("Hello World!"); } } 처음 백준에서 만난 문제가 2557번이다. System.out.print( ); 메소드를 이용해서 1분 안에 풀 수 있을 줄 알았는데 자꾸만 컴파일 에러가 떴다. 이유는 메인 class 이름을 Main으로 지정하지 않아서였다. 백준에서 언어도움말 페이지를 가면 Java의 컴파일/실행 환경은 다음과 같다고 한다. 컴파일: javac -release 1.. 2022. 10. 4.
[Spring] Spring Security의 웹 요청 처리 흐름 Spring Security를 애플리케이션에 적용하는데 어려움을 겪는 가장 큰 이유 중 하나는 Spring Security의 아키텍쳐와 Spring Security의 컴포넌트들이 어떻게 인터랙션해서 인증, 권한 등의 보안 작업을 처리하는지 이해하지 못하기 때문이다. 그리고 이러한 Spring Security의 동작 방식을 조금 더 잘 이해하기 위해서는 보호된 웹 요청을 처리하는 일반적인 처리 흐름과 Spring Security에서 지원하는 Filter의 역할을 이해하는 것이 선행되어야 한다. 따라서 오늘은 Spring Seucrity의 웹 요청 처리 과정 중에서 가장 기본이 되는 웹 요청의 일반적인 흐름과 Spring Security에서 지원하는 Filter의 역할에 대해 알아보겠다. 보안이 적용된 웹 .. 2022. 9. 28.
[Spring] Spring Security 커피를 주문할 수 있는 커피 주문 어플리케이션을 만들었다. 보안을 전혀 고려하지 않은 상태로 오픈을 하였다고 가정하면 어떤 문제가 발생할 수 있을까? 로그인(인증, Authentication) 기능이 없다. 로그인 기능이 없다면 자신을 증명할 방법이 없기 때문에 다른 사람이 회원으로 등록한 내 정보 또는 내가 주문한 정보 등에 대해서 애플리케이션의 API 호출해서 얼마든지 조회가 가능하게 된다. 이 상태로는 다른 사람의 개인정보를 탈취하는 것은 식은 죽 먹기가 될 것이다. API에 대한 권한 부여(인가, Authorization) 기능이 없다. 커피를 주문하는 손님은 메뉴판에 카페의 커피 정보를 마음대로 등록할 수 없어야 한다. 하지만 API에 대한 접근 권한이 부여되지 않는다면 손님이 마음대로 카페 메.. 2022. 9. 27.
[Spring] API 문서화 API 문서화 Controller는 클라이언트 쪽에서 HTTP request URL을 통해 클라이언트의 요청을 전달 받는다. 그런데 백엔드 애플리케이션은 REST API 방식의 애플리케이션이다. 따라서 API 문서화란 클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URL(또는 URI), request body, query parameter 등)를 문서로 잘 정리하는 것을 의미한다. API 문서 생성의 자동화 API 사용을 위한 어떤 정보가 담겨 있는 문서를 API 문서 또는 API 스펙이라고 한다. API 문서는 개발자가 요청 URL 등의 API 정보를 직접 수기로 작성할 수도 있고, 애플리케이션 빌드를 통해 API 문서를 자동 생성할 수도 있다. .. 2022. 9. 26.
[Spring] JPA 엔티티 간 연관 관계 매핑 엔티티 클래스 간의 관계를 만들어주는 것을 연관 관계 매핑이라고 한다. 연관 관계 매핑은 참조하는 방향성을 기준으로 단방향 연관 관계와 양방향 연관 관계로 구분할 수 있다. 그리고 참조할 수 있는 객체의 수에 따라서 일대다(1:N), 다대일(N:1), 다대다(N:N), 일대일(1:1)의 연관 관계로 나눌 수 있다. 카페에서 커피를 주문할 수 있는 커피주문 애플리케이션에서 회원 정보인 Member 클래스와 주문 정보인 Order 클래스의 관계를 살펴보겠다. 단방향 연관 관계 위 그림에서 Member 클래스는 Order 객체를 원소로 포함하고 있는 List 객체를 가지고 있으므로 Order를 참조할 수 있다. 즉 Member는 Order의 정보를 알 수 있다. 반면에 Order 클래스는 Member 클래스에.. 2022. 9. 25.