본문 바로가기

분류 전체보기1068

[자바] 백준 17114 - 하이퍼 토마토 (java) 문제 : boj17114 필요 알고리즘 개념 BFS BFS긴 하다. BFS긴 한게 맞다. 구현 코딩은 체력이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1. 우선 BFS는 기본적으로 문제없이 다룬다는 가정하에 풀 수 있다. BFS를 잘 모른다면 BFS 알고리즘 (너비 우선 탐색) - 배열 BFS, 그래프 BFS 글을 참고하자. 2. 기본 BFS를 알고, 2차원에서의 BFS만 해봤다면 3차원에서의 BFS를 우선 풀어보자.. 2022. 12. 7.
[자바] 프로그래머스 - 겹치는 선분의 길이 (Lv0, Java) 문제 : Programmers-겹치는 선분의 길이 문제 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 필요 알고리즘 개념 구현 if문을 통해 세 선분을 비교해도 풀 수 있으나, 아이디어만 잘 세우면 그냥 배열에 카운팅만 해서 구현해주면 된다. 풀이 선분의 수치는 -100~100 이다. 수치를 +100씩 해준다면 0~200 범위가 된다. 따라서 배열에 해당 선분이 차지하는 범위만큼 카운팅을 해줄 수 있다. 예를들어 아래와 같이 카운팅을 해줄 경우, 배열의 수치가 2 또는 3인 부분이 '두 개 이상의 선분이 겹치는 부분'이다. 주의점은 그냥 [a, b] 범위에 대해 카운팅하는건 점에 대한 카운팅이다. 이 문제에서는 겹치는 면을 찾아야하므로.. 2022. 12. 7.
[자바] 백준 7595 - Triangles (java) 문제 : boj7595 필요 알고리즘 개념 구현 문제에서 제시된 형태로 별찍기를 해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 하나의 정수만 입력받아 별을 찍을 수 있다면, 여러개의 별을 출력하는건 그냥 반복문이 하나 들어가는 과정일 뿐이다. 그러니 하나의 정수에 대해 별을 찍는 과정만 살펴보자. private void print(int n) { for (int i = 1; i 2022. 12. 7.
[자바] 백준 2941 - 크로아티아 알파벳 (java) 문제 : boj2941 필요 알고리즘 개념 구현, 문자열 문자열을 다루는 구현 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제의 관건은 크로아티아 알파벳을 변경해서 사용한 부분을 하나의 알파벳으로 세주면 된다. 문자의 갯수만 알면 되므로 다음과 같이 생각해보자. "ljes=njak" -> "?e??ak" (lj, s=, nj 가 ?로 치환되었다.) 즉, 어떤 문자인지는 상관없고 아무튼 크로아티아 알파벳이 쓰.. 2022. 12. 7.
[자바] 백준 23027 - 1번부터 문제의 상태가…? (java) 문제 : boj23027 필요 알고리즘 개념 구현, 문자열 문제에 제시된대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 자바에서 어떠한 문자가 포함되어있는지 확인은 String s에 대해 s.contains("A") 와 같은 식으로 가능하다. 그리고 특정 문자를 모두 특정 문자로 변경하는 것은 s = s.replaceAll("B", "A"); ( 모든 B를 A로 변경 ) 과 같이 가능하다. 위의 사항들을.. 2022. 12. 5.
[자바] 백준 25305 - 커트라인 (java) 문제 : boj25305 필요 알고리즘 개념 정렬, 구현 정렬을 통해 문제에서 제시된 방식대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1. arr[N] 에 각 학생의 점수를 입력받는다. 2. arr을 정렬한다. 3. 내림차순으로 정렬했다면 앞에서부터 k번째 학생의 점수를 출력한다. 오름차순으로 정렬했다면 뒤에서부터 k번째 학생의 점수를 출력해준다. 코드 : github import java.io.Bu.. 2022. 12. 4.
[자바] 백준 25630 - 팰린드롬 소떡소떡 (java) 문제 : boj25630 필요 알고리즘 개념 구현, 문자열 문자열 파싱을 통해 구현할 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 소떡소떡에서 팰린드롬이 되려면 몇 개를 변경해야 할지 알아내야 한다. [1] 우선 홀수일 경우 중간에 끼워져 있는건 어차피 팰린드롬에 무관하므로 상관 없다 [2] 반반으로 나누자 (필요없는 부분 제외) [3] 한쪽을 거꾸로 돌려서 비교해봤을 때 서로 다른 갯수가 문제에서 원하는 답이다.. 2022. 12. 3.
[roadmap.sh] Backend 3주차 정리 스터디 메인 페이지 목차 완벽한 정리가 목적이 아니고, 로드맵을 보면서 기본 개념을 알고 차후 파고들어서 공부하기 위한 사전 준비 과정인 스터디이다. 따라서 이하 정리한 내용이 부실할 수 있습니다. Learn about APIs HATEOAS ⚈ HATEOAS is an acronym for Hypermedia As The Engine Of Application State, it's the concept that when sending information over a RESTful API the document received should contain everything the client needs in order to parse and use the data i.e they don't have t.. 2022. 12. 3.
[자바] 백준 1253 - 좋다 (java) 문제 : boj1253 필요 알고리즘 개념 투 포인터, 이분 탐색, 해싱 등 이하 풀이는 투 포인터 풀이이다. 정렬 투 포인터 또는 이분 탐색 사용시엔 정렬도 필요하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 말로만 적어보면 간단하다. 1. 입력받은 N개의 값을 정렬한다. 2. idx : 0 to N-1 에 대해 arr[idx]를 제외한 나머지 값들 중 두 개를 합쳐서 arr[idx]가 되는 경우가 존재한다면 cnt+.. 2022. 12. 2.
[자바] 백준 20976 - The Second Largest Integer (java) 문제 : boj20976 필요 알고리즘 개념 구현 문제에서 제시된 대로 구현하면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 일본어 문제지만, 제곧내 이므로 제목과 입출력 예시만 보면 풀 수 있다. 아무튼 3개를 입력받아서 그 중 2번째로 큰 값을 출력하면 된다. 3개의 값을 비교해서 출력해줘도 되고, 그냥 이하 코드처럼 정렬한 후 2번째 값(인덱스1)을 출력해주면 된다. 코드 : github import java... 2022. 12. 2.