문제 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다 영수증에 적힌, 구매한 각 물건의 가격과 개수 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다. 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다. 이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다. 출력 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하..
문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게..
안녕하세요 백준 11659 구간합 구하기 문제를 풀어보겠습니다. 11659번: 구간 합 구하기 4 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제풀이 1) 문제 분석하기 수의 개수, 합의 개수 횟수 최대 100,000 회 시간제한 0.5초 구간 합 공식 이용 해야함 구간 합 공식 이용하지 않을 시, 매번 계산을 해야 함으로, 시간을 초과하게 될 것이다. 보통 1억번 연산 = 1초 라고 생각하면 됨. 2) 요구조건 구현하기 N개의 수를 입력받음과 동시에 합 배열 생성하기 S[i] = ..
안녕하세요 코딩테스트 준비를 위해 꼭 알아야 하는 배열과 리스트에 대해서 정리해보겠습니다. 🚨 코딩테스트를 준비하실 분이라면 배열과 리스트는 무조건적으로 알아야지 진행을 할 수 없습니다. 위 자료구조를 알지 못한다면, 코딩 테스트 준비시 많이많이 힘들 수 있으므로 꼭 알고 가야 합니다. 배열이란? 메모리의 연속적인 공간에 값이 채워져 있는 형태의 자료구조이고 인덱스를 통해 값을 참조할 수 있다. 배열의 특징? 인덱스를 통해 값에 접근한다 새로운 값을 삽입하거나, 특정 인덱스 값 삭제하기 어렵다. 삽입,삭제를 하려면 주변 값을 이동시키는 과정이 필요합니다. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기 변경 불가능 구조가 간단해서 코딩 테스트에서 제일 많이 사용합니다. 리스트란? 리스트..
안녕하세요 오늘으 알고리즘 문제를 풀다보면 꼭 알아야하는 시간복잡도에 대하여 알아보겠습니다 ✔ 실제 시간 복잡도를 정의하는 3가지 유형이 있습니다 💡 시간 복잡도 유형 빅-오메가(Big-Ω) = 최선일 때 연산 횟수 빅-세타(Big-θ) = 보통일 때 연산 횟수 빅-오(Big-O) = 최악일 때 연산 횟수 public class Ex { public static void main(String[] args) { //1~100사이의 랜덤값 선택 int randomNum = (int)(Math.random()*100); for (int i = 0; i 1,000,000,000,000 > 200,000,000(부적합) → 병합 정렬 ⇒ 1,000,000log(1,000,000) = 2,000,000 (적합) 이..
안녕하세요 오늘은 웹 백엔드 개발자라 하면은 꼭 알아야 웹 서버, 웹 어플리케이션 서버 개념에 대해서 알아보도록 하겠습니다. 일단 웹 브라우저 및 웹 환경에서는 클라이언트와 서버가 통신하기 위해 HTTP 라는 통신 프로토콜을 통해 데이터를주고 받습니다. 🖐 여기서 그럼 HTTP 가 무엇인지를 궁금해 하실 수 있습니다. HTTP란?HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다 간단하게 이정도 의미라고만 알고 있으면 될 것 같습니다. 자세하게 HTTP에 대하여 공부하시고 싶으시면https://www.cloudflare.com/ko-kr/learning/ddos/glossary/hypertext-transfer-protocol-http/요 링크에서 ..
안녕하세요🖐 오늘은 스프링부트 환경에서 스프링 시큐리티를 활용한 로그인&로그아웃을 구현해보겠습니다. 스프링 시큐리티는 내용이 정말 많은 것 같아요😂 그만큼 공부할 부분이 많고, 활용범위가 넓다는 뜻입니다. 그만큼 한번 잘 공부해두면 두고두고 잘 사용할 수 있습니다. 스프링 시큐리티는 방대한 프레임워크이다. 따라서 스프링 시큐리티가 내부적으로 어떻게 동작하는지 알기 위해서는 스프링 시큐리티에 대해서 자세히 공부해야 한다. (스프링 시큐리티는 책 1권 분량으로 나올만큼 방대한 프레임워크이다. 실제로 스프링 시큐리티에 대한 책은 많이 출판되었다.) 이 책은 스프링 시큐리티 자체에 대한 내용보다는 활용적인 측면에 대해서만 다룰 것이다. 하지만 개략적인 개념 설명을 추가했으니 이해에 도움이 되기를 바란다. 기능구..
오늘은 JPA를 활용하여 게시판을 페이징 해보도록 하겠습니다. 1) 서론1-1) 페이징을 하는 이유 여러분들은 페이징을 왜 해야하는가에 대해서 생각해본적이 있나요❓컴퓨터 공학을 전공한 분이라면 페이징이라고 하면 두가지를 떠올릴 수 있습니다. 1) 게시판 같은, 웹 페이지에서 페이지가 넘어가는 페이징2) 가상메모리 관리 기술인 페이징 두가지를 생각할 수 있습니다.여기서 제가 설명할 것은 1번인 웹 페이지에서 페이지를 이동시키는 페이징을 진행 해보도록 할 것 입니다. 📢 결과적으로 제가 페이징을 하면서 느꼈던 것을 바탕으로 페이징을 필요성 대해서 적어보겠습니다.1) 사용자 경험 향상페이징을 하지 않으면 모든 글들이 한번에 나열되게됩니다. 글이 200개 300개 라면은 사..