분류 전체보기 164

백준 2979번 트럭 주차(C++)

문제 https://www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net 해설 1대가 주차되었을때, 2대가 주차되었을때, 3대가 주차되었을때 각각 가격이 다르다 이때 때문에 차량별로 들어오는 시간 - 나가는 시간이 주어지기 때문에 해당 시간을 나타내는 배열 위치에 차량 수를 +1 해준다 그렇게 하면 차량이 없는 칸은 0 / 1대는 1 / 2대는 2 / 3대는 3이되어 각 값에 따라 가격*차량수 를 결과에 더해주면 된다 코드 1 2 3 4 5 6..

백준 10808 알파벳 개수(C++)

문제 https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 해설 소문자 알파벳의 아스키코드는 97 ~ 122까지인 점을 이용하여 아스키코드를 통해 알파벳을 정수로 바꿔 배역[정수]++같은 형태로 배열에 카운팅하기 코드 1 2 3 4 5 6 7 8 9 10 11 #include using namespace std; int main(){ int alp[26] = {0}; string str; cin >> str; for(char a : str) alp[a - 97] ++; for(int i=0; i

백준 2309 일곱 난쟁이(C++)

문제 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 해설 입력값이 9개 밖에 되지 않아 전부 순열을 돌려도 그리 큰 수가 아니기에 순열을 통해 0~6까지의 인덱스에 위치한 값들의 합이 100이 되면 do-while문 종료 후 정렬 후 리턴 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; int main(){ int a; int a..

12.1~12.3 서비스 계층과 트랜잭션(게시판 만들기 / 길벗 코딩 자율학습단)

서비스 컨트롤러와 리파지터리 사이에 위치하는 계층 서버의 핵심 기능(비즈니스 로직)을 처리하는 순서를 총괄 클라이언트가 요청을 보내면 컨트롤러가 이를 받아 서비스로 전달하고 서비스는 받은 요청을 순서에 따라 진행 처리에 필요한 데이터는 리파지터리가 DB에서 가져와 반환함 이전장들에서 컨트롤러가 하던 일을 서비스 + 컨트롤러로 역할을 나눈것 (복잡한 로직일 수록 컨트롤러만으로 하기 힘들어짐) 트랜잭션 모두 성공해야만 정상적으로 완료됨 쪼갤 수없는 업무 처리의 최소 단위 보통 서비스 단계에서 관리함 트랜잭션 과정 중 오류가 발생하면 모두 롤백시킴 롤백 트랜잭션 내부에서 실행에 실패하면 지금까지 수행한 것을 모두 폐기하고 진행 초기 단계로 되돌아가는 것 @Service 해당 어노테이션이 선언된 클래스는 서비스..

11.3 REST API 구현하기(게시판 만들기 / 길벗 코딩 자율학습단)

REST 컨트롤러와 일반 컨트롤러의 차이 REST 컨트롤러 => JSON or 텍스트와 같은 데이터 반환 일반 컨트롤러 => 뷰페이지(HTML) 반환 REST API : 기본 설정 @RestController 어노테이션 선언 @Slf4j 어노테이션 선언(로깅을 위해) @Autowired 어노테이션 선언(의존성 주입) REST API: GET 구현하기(조회) 모든 게시글 조회 @GetMapping()어노테이션을 통해 URL주소 받기 Article 묶을을 반환하기 때문에 List을 반환 타입으로 하는 메서드 생성 리파지터리.findAll() 메서드를 리턴 @GetMapping("/api/articles") public List index(){ return articleRepository.findAll(); ..

11.1~11.2 REST API의 동작 이해하기(게시판 만들기 / 길벗 코딩 자율학습단)

REST API REST는 HTTP URL로 서버의 자원(resource)을 명시하고 HTTP메서드(GET, POST, PATCH/PUT, DELETE)로 해당 자원에 대해 CRUD(생성, 조회, 수정, 삭제)하는 것을 말함 API는 클라이언트가 서버의 자원을 요청할 수 있도록 서버 측에서 제공하는 인터페이스 즉 REST API는 REST를 기반으로 API를 구현한 것 REST 컨트롤러 REST API로 설계된 URL 요청을 받아 처리하는 컨트롤러 일반 컨트롤러가 뷰 페이지를 반환한다면 REST 컨트롤러는 JSON이나 텍스트같은 데이터를 반환함 REST 컨트롤러의 특징 @RestController 어노테이션을 통해 선언 클라이언트의 데이터 조회, 생성, 수정. 삭제 요청을 HTTP 메서드에 맞게 각각 @..

10.1~10.2 REST API 동작 살펴보기(게시판 만들기 / JSON / 코딩 자율학습단)

API Application Programming Inerface, 애플리케이션을 간편히 이용할 수 있도록 하는 미리 정해진 일종의 약속 웹 서비스를 스마트폰, 스마트웨치, 태블릿등 다양한 클라이언트에서 사용가능 하도록 함 REST API 서버 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계방식 클라이언트에서 정보를 요청하면 서버는 특정 기기에 종속되지 않고 모든 기기에서 통용할 수 있는 JSON 데이터를 응답으로 보냄 JSON 데이터 자바스크립트 방식을 차용한 객체 표현식 키(key)와 값(value)의 쌍으로 이루어진 속성(property)으로 구성 REST API 실습 {JSON} Placeholder 사이트에 가면 가짜 API를 사용해 무료로 각종 테스트 가능 크림 브라우저 확장 프로..

9.3 기본 SQL 쿼리 작성하기(게시판 만들기 / 길벗 코딩 자율학습단)

기본 SQL쿼리를 통해 coffee 테이블 만들기 / 데이터 생성하기 / 데이터 조회하기 / 데이터 수정하기 / 데이터 삭제하기 coffee 테이블 만들기 --CREATE TABLE문의 기본 형식 CREATE TABLE 테이블명( 속성명1 자료형, 속성명2 자료형, 속성명3 자료형, PRIMARY KEY (기본키) ) 데이터 생성하기(INSERT문) --INSERT문 INSERT INTO 테이블명 (속성명1,속성명2,속성명3---) VALUES (값1,값2,값3 ---); 데이터 조회하기(SELECT문) --SELECT문 SELECT 속성명1,속성명2,속성명3-- FROM 테이블명 WHERE 조건: 데이터 수정하기(UPDATE문) --UPDATE문 UPDATE 테이블명 SET 속성명=변경할값 WHERE ..

9.2 SQL 쿼리 로그 확인하기(게시판 만들기 / 길벗 코딩 자율학습단)

더미 데이터와 신규 데이터의 id값이 중복되어 더미데이터를 삭제하기 전에는 신규 데이터 작성 시 오류가 발생하는 문제를 해결해 보자 1. id를 자동 생성해 주는 @GeneratedValue 어노테이션에 (strategy = GenerationType.IDENTITY)를 입력해 앞으로 데이터를 생성할 때마다 DB가 알아서 id에 1,2,3,4--- 값을 넣어주도록 설정 public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private String title; @Column private String content; } 2. id값으 자동으로 할당하도록 했으므로 data.s..

9.1 JPA 로깅 설정하기(게시판 만들기 / 길벗 코딩 자율학습단)

쿼리 => DB레 정보를 요청하는 구문 ex) SQL 쿼리 : INSERT문, SELECT문, UPDATE문, DELETE문 resources > application.properties파일에 JPA로깅 설정 # 디버그 레벨로 SQL쿼리 출력 logging.level.org.hibernate.SQL=DEBUG # 쿼리 줄바꿈하기 spring.jpa.properties.hibernate.format_sql=true # 매개변수 값 보여 주기 logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE # DB URL 설정 # 유니크 URL 설정하지 않기 spring.datasource.generate-unique-name=false # 고정 URL ..