분류 전체보기 54

[BaekJoon] 23971 - ZOAC 4

📄 문제2021년 12월, 네 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 오프라인 대회를 대비하여 강의실을 예약하려고 한다.강의실에서 대회를 치르려면 거리두기 수칙을 지켜야 한다!한 명씩 앉을 수 있는 테이블이 행마다 W개씩 H행에 걸쳐 있을 때, 모든 참가자는 세로로 N칸 또는 가로로 M칸 이상 비우고 앉아야 한다. 즉, 다른 모든 참가자와 세로줄 번호의 차가 N보다 크거나 가로줄 번호의 차가 M보다 큰 곳에만 앉을 수 있다.논문과 과제에 시달리는 성우를 위해 강의실이 거리두기 수칙을 지키면서 최대 몇 명을 수용할 수 있는지 구해보자. 🏷️ 입력H, W, N, M이 공백으로 구분되어 주어진다. (0  H, W, N, M ≤ 50,000)5 4 1 1🏷️ 출력강의실이 수용할 수 있는 최대 인원 ..

Algorithm 2024.11.10

[BaekJoon] 3052 - 나머지

📄 문제두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 🏷️ 입력첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.1 2 3 4 5 6 7 8 9 10🏷️ 출력첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.10🎈 풀이입력 받은 숫자들을 배열에 저장한다.for문으로 모든 인덱스를 42로 나눈다. 처음엔 아래와 생각했다. 하지만 이건 NO !!!!for문으로 i번..

Algorithm 2024.11.10

[BaekJoon] 10813 - 공 바꾸기

📄 문제도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다.도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다.공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오. 🏷️ 입력첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다.둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는..

Algorithm 2024.11.10

[BaekJoon] 1546 - 평균

📄 문제세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.  🏷️ 입력첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.340 80 60  🏷️ 출력첫째 줄에 새로운 평균을 출력한..

Algorithm 2024.11.10

[Spring] 스프링 입문 - (회원 관리 예제)웹 MVC 개발

[ 회원 웹 기능 - 홈 화면 추가 ]홈 컨트롤러 추가 회원 관리용 홈 Hello Spring 회원 기능 회원 가입 회원 목록  컨트롤러가 정적 파일보다 우선순위가 높음 localhost::8080 요청이 들어오면1. controller을 찾고 없으면 !2. static 파일을 찾음 [ 회원 웹 기능 - 등록 ]1. 회원 등록 폼 개발회원 등록 폼 컨트롤러@Controllerpublic class MemberController { private MemberService memberService; @Autowired public void setMemberService(MemberSer..

개발/Spring 2024.11.10

[Spring] 스프링 입문 - 자바 코들 직접 스프링 빈 등록하기

회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 애노테이션을 제거하고 진행하나하나 직접 스프링한테 등록하기 ! @Bean 어노테이션과 @Configuration 어노테이션 ]만약 다음과 같은 클래스를 스프링 컨테이너에 등록하고자 한다면,public MemberRepository memberRepository() { return new MemoryMemberRepository();} 설정 클래스에서 @Bean 어노테이션을 사용하여 수동으로 스프링 컨테이너에 빈을 등록한다.이때 설정 클래스에서는 @Configuration 어노테이션을 클래스에 붙여준다.@Bean을 사용해 수동으로 빈을 등록해줄 때에는 메소드 이름으로 빈 이름이 결정된다. 그러므로 중복된 빈 ..

개발/Spring 2024.11.07

[Spring] 스프링 입문 - 컴포넌트 스캔과 자동 의존관계 설정

회원 컨트롤러가 회원 서비스, 리포지토리를 사용할 수 있게 의존관계를 준비한다. @Controller 사용!!private final MemberService memberService = new MemberService();DI (Dependency Injection), 의존성 주입: 객체 의존관계를 외부에서 넣어주는 것만약 여러 컨트롤러를 사용할 때, 매번 new MemberService로 불러올 필요가 없다 !!@Controllerpublic class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { ..

개발/Spring 2024.11.07

[Spring] 스프링 입문 - 회원 서비스 테스트

기존에 만들어놨던 MemberService 클래스에서 단축키 command + shift + T 입력 후 create new test 선택위와 같이 선택 한 후 완료를 하면 test 아래에 MemberServiceTest파일이 생성 된다. 테스는 메서드를 한글로 입력해도 상관 없다 !! for 직관성 회원가입 회원 가입을 하려면 member 먼저 만들어야한다.give when then 패턴: 주석으로 give, when, then을 입력한 후, 코드를 짜면 훨씬 수월하게 짤 수 있다.@Testvoid 회원가입() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberS..

개발/Spring 2024.11.07

[Spring] 스프링 입문 - 회원 서비스 개발

Service: 서비스는 비즈니스 처리를 하는 롤 (네이밍도 이에 맞게 해야 함) MemberService 클래스 생성1. 회원 가입public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); /** * 회원 가입 */ public Long join(Member member){ Optional result = memberRepository.findByName(member.getName()); result.ifPresent(m -> { throw new IllegalStateExcept..

개발/Spring 2024.11.07

[Spring] 스프링 입문 - (회원 관리 예제) 회원 리포지토리 테스트 케이스

테스트 케이스란 ?개발한 기능을 실행해서 테스트 할 때 자바와 main 메서드를 통해서 실행 or 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행준비하고 실행하는데 오래 걸리고, 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점을 자바의 JUnit이라는 프레임워크로 테스트를 실행하여 해결 가능아래와 같이 해당 위치에 repository 패키지를 만들어준다.이때 class 이름은 test하려는 repository 이름 뒤에 "Test"를 붙여준다. 테스트 케이스 만들기@Test 어노테이션을 사용하여 검증 가능!class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository()..

개발/Spring 2024.11.07