본문 바로가기

전체 글130

[백준 알고리즘][자바] 2577번 : 숫자의 개수 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제 자체는 간단한 문제입니다. 세 개의 자연수 A, B, C의 곱의 값이 0부터 9까지의 숫자가 각각 몇번 쓰였는지 출력하면 되는 문제입니다. 이 문제를 포스팅하는 이유는 숫자로 이루어져있는 String 타입의 문자열을 char로 나누고 다시 int형으로 변환시키는 코드를 기록하기 위함입니다. int뿐만 아니라 다시 각각 String으로도 변환 가능하겠네요. import java.io.BufferedReader; import java.io.Buffe.. 2023. 4. 24.
[백준 알고리즘][자바] 2480번 : 주사위 세개 https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 백준 알고리즘 구현 파트를 브론즈 4 정도부터 풀고 있는데, 부족함을 많이 느끼네요. 코드를 구현할 때 for문에 너무 집착하는 경향이 있는 것 같습니다... 이 문제의 포인트는 같은 눈이 몇 개인지를 구해야 하는 것입니다. 아래는 제가짠 코드 for문을 통해 같은 수가 존재 하는지 flag를 통해 저장하고 다시 전체 for문을 통해 같은 눈이 몇개인지와 max값을 구했습니다. 그리.. 2023. 4. 20.
[백준 알고리즘][JAVA] 2439번 : 별 찍기 - 2 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 이번 문제는 일반적인 별 찍기 문제와 다른 점은 오른쪽 정렬입니다. 풀이법은 먼저 (N - i) 만큼 공백 출력 후 i만큼 별을 찍습니다. for문을 돌려 갯수만큼 공백과 별을 찍으면 해결 되겠지만, 문자열 곱셈을 활용하여 문제를 해결하였습니다. \0은 문자열의 끝을 찾아주는데, 그것을 공백과 별로 replace 시켜 문자열을 완성합니다. import java.io.BufferedReader; import java.io.BufferedWr.. 2023. 4. 19.
[스프링 부트] Spring Data JPA로 Oauth2 네이버 로그인 구현하기 본 포스팅은 Spring Boot에서 Spring Data JPA를 사용하며 Oauth2 로그인 구현하는 방법을 설명합니다. 이번 포스팅에서는 카카오에 이어 네이버에서 제공하는 소셜 로그인 구현을 해보도록 하겠습니다. 카카오는 아래를 참고해주세요. 2022.09.14 - [Programming/Spring] - [스프링 부트] Spring Data JPA로 Oauth2 카카오 로그인 구현하기 [스프링 부트] Spring Data JPA로 Oauth2 카카오 로그인 구현하기 본 포스팅은 Spring Boot에서 Spring Data JPA를 사용하며 Oauth2 로그인 구현하는 방법을 설명합니다. 이번 포스팅에서는 카카오에서 제공하는 소셜 로그인 구현을 해보도록 하겠습니다. Oauth2 로그인은 hyuni.. 2022. 10. 1.
[스프링 부트] Spring Data JPA로 Oauth2 카카오 로그인 구현하기 본 포스팅은 Spring Boot에서 Spring Data JPA를 사용하며 Oauth2 로그인 구현하는 방법을 설명합니다. 이번 포스팅에서는 카카오에서 제공하는 소셜 로그인 구현을 해보도록 하겠습니다. Oauth2 로그인은 이미 많은 블로거들이 포스팅을 해서 검색을 통해 쉽게 찾을 수 있었지만, 저는 application.yml, Spring Data JPA, gradle를 사용하는 점, Spring Security에서 deprecated 된 메서드들 때문에 새롭게 정리하고자 합니다. 개발환경 Spring boot 2.7.0 Spring Data JPA Spring Security Oauth2 application.yml gradle build.gradle Oauth2 로그인을 위한 dependenci.. 2022. 9. 14.
[백준 알고리즘][자바] 10814번 : 나이순 정렬 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 이번 문제는 안정 정렬(Stable Sort)에 관한 문제입니다. 입력으로 사람들의 나이와 이름이 가입한 순서대로 주어집니다. 이때 회원들을 나이순으로 정렬하고, 나이가 같으면 먼저 가입한 사람이 앞에 오도록 정렬해야 합니다. 안정 정렬(Stable Sort)이란 정렬을 마쳤을 때 동일한 키값을 가진 요소의 순서가 유지되는 것을 의미합니다. 예를들어, 1, 3, 5, 7, 3 를 정렬한다면 정렬 후에 .. 2022. 7. 14.
[Java] 병합 정렬(Merge Sort) 병합 정렬(Merge Sort)은 안정 정렬 중 하나이며, 분할 정복 알고리즘을 사용한 정렬 방법입니다. 분할 정복(divide and conquer)은 하나의 문제를 두 개의 문제로 분리하고 각각 해결한 다음 결과를 모아서 문제를 해결하는 방법입니다. 병합 정렬(Merge Sort)이란? 병합 정렬은 분할 정복 알고리즘에 따라서 하나의 리스트를 두 개의 리스트로 분할한 다음 각각의 분할된 리스트를 정렬한 후에 합하여 정렬된 하나의 리스트로 만드는 방법입니다. 병합 정렬은 아래와 같은 순서로 진행됩니다. 분할(Divide) : 입력된 리스트를 두개의 리스트로 분할한다. 정복(Conquer) : 분할된 리스트를 정렬한다. 분할된 리스트의 크기가 작지 않다면 재귀 호출을 이용하여 다시 분할 정복합니다. 결합.. 2022. 7. 6.
[백준 알고리즘][자바] 1181번 : 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 이번 문제는 단어를 정렬하는 문제입니다. 첫 번째 기준은 길이가 짧은 것 두 번째 기준은 길이가 같으면 사전 순으로 정렬하는 것입니다. 좌표 정렬하기에서는 퀵정렬을 수정하여 알고리즘을 직접 만들어서 해결했는데 이번 문제는 쉽지 않네요. 일단 Array.sort()를 사용하여 문제를 해결하고 직접 알고리즘을 만드는 거는 고민을 해봐야겠습니다. 풀이 import java.io.Buffere.. 2022. 6. 28.
[Java] 자바 함수형 인터페이스(Functional Interface) 2022.06.08 - [Programming/Java] - [Java] 자바 람다식(Lambda Expression)이란? [Java] 자바 람다식(Lambda Expression)이란? 자바 8부터 추가된 스트림(Stream)을 사용하기 위해서는 람다식(Lambda Expression)의 이해가 필수적입니다. 이번 포스팅에서는 람다식에 대해 알아보도록 하겠습니다. 람다식(Lambda Expression) 이란? 람다 hyunipad.tistory.com 람다식은 함수형 인터페이스를 반환하게 되는데, 이 함수형 인터페이스는 자주 쓰는 패턴이 정해져 있습니다. 파라미터가 있거나 없거나, 리턴 값이 있거나 없거나 달라지는 것은 람다식을 통해 구현되는 구현부입니다. 자바에서는 빈번히 사용되는 함수형 인터페이.. 2022. 6. 22.
반응형