분류 전체보기 512

[백준] 2217번 > 로프

www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 ..

[백준] 10815번 > 숫자 카드

www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적..

[백준] 1026번 > 보물

www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0]×B[0] + ... + A[N-1]×B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 ..

삼성SDS 랜선 멘토링 후기

행사 순서는 다음과 같다. 대학생을 대상으로 진행된 행사였기 때문에 현재 내가 고민했던 것들이나 궁금했던 점들을 기반으로 말씀해주셔서 굉장히 유익한 시간이었다. 다음에 코드 리뷰나 백엔드 전반에 대한 멘토링이 열려서 꼭 다시 참석하고 싶다. 강의 내용 정리 # 어떤 기술을 쓰게 될지는 나도 모르고 회사도 모르고 세상도 몰랐다. 대학생 때 배우고 생각했던 것과는 아예 다른 정말 다양한 기술을 실무에서는 사용하고 다루게 된다. # 개발자란? 세상의 문제를 {기술로} 해결하는 사람 기술 : 문제를 풀기 위한 도구 능력 있는 개발자 == 문제를 잘 해결하는 사람 기술을 많이, 잘 사용하는 것이 개발자의 목표가 아니다. [ 문제 ]가 너무나도 다양하다. 언제 어떤 문제를 풀게 될지 모른다. 심지어 계속 변하고 어..

잡담 2021.02.18

회원 서비스 테스트

Test given 주어지는 것 when 주어졌을 때 then 어떻게 되는지 1. 회원가입 테스트 (join) given member에 name은 hello when member를 join시킴 id값이 return되므로 saveId에 저장 then return되어 저장된 saveId를 가지고 repository에 저장되어 있는 member정보 가져옴. 그것을 우리가 생성한 member객체의 name과 비교 성공 테스트에서 가장 중요한 것은 반례, 즉 예외 case이다. 1-2. 회원가입 테스트 (join) - 중복 회원 가입 try - catch문을 통하여 오류를 받고 메세지 비교를 통해 테스트 검증 성공 * assertThrows메소드를 활용해 더 간단하게 테스트하기 memberService.join(..

회원 서비스 개발

* 같은 이름이 있는 이미 존재하면 가입 불가 Optional ?? java8부터 도입된 null값을 처리하기 위한 래퍼 클래스 과거에는 != null을 통해 항상 null값을 체크해야했지만 이제는 Optional로 객체를 감싸주게되면 정적메소드를 사용할 수 있다. 그 예로 ifPresent는 객체안에 무언가 들어있는지를 판별하는 메소드이다. - findByName은 return 값이 이미 Optional이기 때문에 위의 코드를 정리하여 사용가능하다. MemberService 클래스 전체 코드 public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); /* 회원 가입 *..

회원 도메인과 리포지토리 테스트

개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. 1. save() 메소드 테스트 1-1. 직접 출력해서 테스트하기 console창에 result = true로 뜬 것을 확인할 수 있다. ==> 테스트 성공 1-2. Assertions로 테스트하기 * junit Junit에서 제공하는 Assertions 사용 ==> 테스트 성공 테스트 실패시에는 다음과 같이 오류가 발생한다. Expected(기댓값, 우리가 찾는 값..

회원 도메인과 리포지토리 만들기

1. 회원 도메인 만들기 domain 패키지 생성하고 그 안에 Member 클래스 생성 Id는 시스템에서 저장할 때 자동으로 지정되는 id값을 의미한다. (기본키와 비슷하게 사용될 것이다.) 2. 리포지토리 만들기 * 인터페이스 이전에 말했던 것과 같이 어떤 DB를 사용할 것인지를 아직 정하지 못했으므로 차후에 DB가 정해진다면 끼워맞추기 위해 인터페이스로 구현 * 구현체 filter를 통해 루프를 돌면서 하나라도 입력받은 name과 member.getName()이 같은게 있다면 return 해준다. 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려

[백준] 1764번 > 듣보잡

www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 ..

[백준] 1100번 > 하얀 칸

www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 문제 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다. 출력 첫째 줄에 문제의 정답을 출력한다. 예제 입력 1 .F.F...F F...F..

반응형