본문 바로가기

전체 글108

ResponseEntity - Spring Boot에서 응답하기 웹 서비스에서는 많은 데이터를 정해진 형식에 맞게 가공하여 전달한다. 대표적인 요청 및 데이터 형식을 HTTP(HyperText Transport Protocol)이라고 한다. HTTP 응답은 status code, header, body로 구성되어 있다. 이 세 가지 요소를 갖춘 객체를 생성하는 것이 ResponseBody와 ResponseEntity이다. ResponseBody ResponseBody는 HttpEntity를 상속받아 데이터와 상태 코드를 제어하는 클래스이다. HttpMessageConverter가 해당 Annotation이 붙은 객체를 response body에 직렬화하여 동작한다. 다음과 같이 @ResponseBody 어노테이션을 명시하면 응답 형식을 설정할 수 있다. 다만 데이터만.. 2023. 9. 20.
P15683. 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 설명 설마... 모든 경우의 수를 순열로 구해서 하는 것인가? 했는데 그러했다. 이 문제는 cctv의 타입에 따라 탐색할 때, 방향을 잘 결정하는 것이 중요하다. 탐색할 수 있는 방향을 상우하좌로 표현한다면, 1, 2, 3, 4, 5번 cctv는 다음 방향을 갖는다. 코드 import java.io.BufferedReader; import java.io.FileInputStream; i.. 2023. 9. 20.
프로그래머스: 이상한 문자 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 처음에 단어를 공백 기준으로 나눈 다음에, 단어별로 홀짝 인덱스를 판단해서 구현했다. 또한 단어는 하나 이상의 공백문자로 되어있다. 코드 class Solution { public String solution(String s) { String answer = ""; String[] words = s.split(""); int idx = 0; for(String word : words) { /.. 2023. 9. 15.
알고리즘에서 약수 개수 찾기(Feat. 제곱근까지만 검사해도 되는 이유!) 16의 약수의 개수를 찾는 코드를 작성해보자. 16을 1부터 16까지 반복문을 통해 나눈다. - 만약 나누어 떨어진다면 -> 약수이다 - 나누어 떨어지지 않으면 -> 약수가 아니다 그런데 항상 1부터 16까지 전부를 검색해야 할까? 16의 제곱근은 4이다. 16의 약수는 1, 2, 4, 8, 16이다. 1, 2, 4, 8, 6 제곱근인 4까지만 검사하면, 나머지 약수는 4를 기준으로 대칭으로 나온다. 따라서 4보다 큰 약수를 찾을 필요 없다 public int countDivisors(int n) { int count = 0; int root = (int) (Math.sqrt(n)); for(int i = 1; i 2023. 9. 11.
👩‍💻 자바 코테 cheat sheet(최신 업데이트: 10.18) 헷갈리는 개념들 모아모아 정리하기! +) 참고하면 좋을 블로그: Java 코딩테스트 관련 팁 ✔️ 배열, 리스트, 문자열 크기 - 배열: length 변수 사용 - arraylist: size() 메서드 사용 - 문자열 크기: length() 메서드 사용 // 배열 int[] arr = {1,2,3,4,5}; System.out.println(arr.length);// 5 // 리스트 List list = new ArrayList(); list.add(1); list.add(2); list.add(3); System.out.println(list.size());// 3 // 문자 String str = "hello"; System.out.println(str.length());// 5 ✔️ Math.sq.. 2023. 9. 8.
[☁️ 구름톤 챌린지] 4주차 학습일지 - 1 문제 16. 연합 전형적인 BFS 문제이다. 이 문제는 BFS에서 queue에 이 다음에 방문할 값을 넣을 때하는 방문 체크에서, 이 다음 값을 방문했는지 확인하는 것이 아닌 현재 값을 방문했는지 계속 확인하는 바람에 틀렸다. 방문 체크하는 값을 바꾸어주니 통과되는 것을 확인할 수 있었다. import java.io.*; import java.util.*; class Main { static int N, M; static int[][] map; static boolean[] visited; static int result; static Queue queue; public static void main(String[] args) throws Exception { BufferedReader br = new .. 2023. 9. 8.
[나만무] 크래프톤 정글: 최종 발표 후기 Baby-on-top Baby-on-top Baby-on-top has 6 repositories available. Follow their code on GitHub. github.com 나만무 프로젝트가 마무리되고 벌써 1주일이 지났다. (현재 글을 쓰는 시점은 약 3주…) 이력서를 쓰다 보니 나만무 경험을 녹아내야 하는 상황들이 많은데, 후기를 작성하면서 경험을 정리해보면 좋을 것 같다. 👊 리더 해볼까? 이전까지 랜덤으로 팀이 발표되었다. 나만무에서는 코치님들이 일부 개입하시긴 하지만 팀 구성이 자유롭다. 리더는 함께 하고 싶은 팀원을 우선순위로 작성하고, 팀원도 역시 원하는 팀장을 우선순위로 선정하는 방식이다. 리더를 지원해볼까 하는 생각은 나만무가 시작하기 전부터였다. 사실 나는 전공자이고 오.. 2023. 9. 5.
P14500. 테트로미노 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 설명 처음 생각한 방법은 테트로미노를 만들 수 있는 경우의 수를 모두 계산하여 풀이하는 방법이다. 하지만 너무 복잡하다. 이 문제는 테트로미노를 만들 수 있는 경우의 수를 두가지로 나누어 풀이할 수 있다. 1. ㅜ 모양이 아닌 경우 👉 dfs로 탐색한다. 2. ㅜ 모양인 경우 👉 직접 좌표를 계산하거나, 조합으로 풀이한다. 1. ㅜ 모양이 아닌 경우 노란 칸: 탐색 시작 칸 파란 칸: dfs로 탐.. 2023. 9. 5.
P9375. 패션왕 신해빈 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 설명 처음 시도 조합으로 각 경우의 수를 구하고 만들어진 조합끼리 값을 곱하여 result를 구했다. but! 시간초과 발생⚡️ ➡️ 생각해보면 각 조합을 모두 구할 필요는 없다! 우리는 경우의 수만 구하면 되기 때문이다. 다음 시도 각각의 종류가 가질 수 있는 경우의 수에 NULL(안 입을 경우)을 추가.. 2023. 9. 3.