Algorithm

Algorithm

Algorithm - 팰린드롬인지 확인하기 (Java- 쉬운 풀이)

🌴 문제 문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. 예제 입력 1 복사 level 예제 출력 1 복사 1 예제 입력 2 복사 baekjoon 예제 출력 2 복사 0 🌴 문제 분석 import java.io.BufferedReader; import java.io.IOExcept..

Algorithm

Algorithm - 바구니 순서 바꾸기 (Java - 쉬운 풀이)

🌴 문제 문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다. 도현이는 앞으로 M번 바구니의 순서를 회전시키려고 만들려고 한다. 도현이는 바구니의 순서를 회전시킬 때, 순서를 회전시킬 범위를 정하고, 그 범위 안에서 기준이 될 바구니를 선택한다. 도현이가 선택한 바구니의 범위가 begin, end이고, 기준이 되는 바구니를 mid라고 했을 때, begin, begin+1, ..., mid-1, mid, mid+1, ..., end-1, end 순서로 되어있는 바구니의 순서를 mid, mid+..

Algorithm

Algorithm - 별 찍기 - 7 (Java - 쉬운 풀이법)

🌴 문제 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 복사 5 예제 출력 1 복사 * *** ***** ******* ********* ******* ***** *** * 🌴 문제 분석 package advancedBAEKJOON; import java.util.Scanner; public class day4 { public static void main(String[] args) { // 별찍기 - 7 Scanner scan = new Scanner(System.in); int N = scan.nextInt(); for(int i = 1; i = 0; i--..

Algorithm

Algorithm - 킹, 퀸, 룩, 비숍, 나이트 폰 (Java)

🌴 문제 문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. 출력 첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출..

Algorithm

Algorithm - 새싹 (Java)

🌴 문제 문제 아래 예제와 같이 새싹을 출력하시오. 입력 입력은 없다. 출력 새싹을 출력한다. 예제 입력 1 복사 예제 출력 1 복사 ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | 🌴 문제 분석 package advancedBAEKJOON; public class day01 { public static void main(String[] args) { String s = " ,r'\"7\n" + // \n = 엔터 // \"= " "r`-_ ,' ,/\n" + " \\. \". L_r'\n" + // \\=\ " `~\\/\n" + " |\n" + " |"; System.out.println(s); } } 앞쪽 빈칸 안쓰이게 주의하자.

Algorithm

Algorithm - 다이얼 (Java)

🌴 문제 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요..

Algorithm/자료구조와 함께 배우는 알고리즘 (자바편)

10 - 해시법 (자바편)

🌏 주제 : 10 - 해시법 (자바편) 🌏 해시법 해시법은 데이터를 저장할 위치(인덱스)를 간단한 연산으로 구하여 검색,추가,삭제를 효율적으로 수행 🌏 충돌(Collision) 만약 333이라는 값이 인덱스 14에 저장되어있는데 이후에 130이라는 값(나머지 14)을 저장한다고 가정 -> 이렇게 저장할 버킷이 중복되는 현상을 충돌이라고 한다. -> 해시 함수는 가능하면 해시값이 치우치지 않도록 고르게 분포된 값을 만들어야 한다. 충돌 대처법 2가지 1. 체인법 : 해시값이 같은 요소를 연결 리스트로 관리 2. 오픈 주소법 : 빈 버킷을 찾을때 까지 해시 반복 🌏 오픈 주소법 충돌이 발생했을 때 재해시를 수행하여 비어있는 버킷을 찾는 방법 -> 닫힌 해시법이라고도 함 18 삽입 하고자 할때 18 % 13 ..

Algorithm

Algorithm - 상수 (Java)

🌴 문제 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력..

Algorithm

Algorithm - 단어의 개수(Java)

🌴 문제 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 1 복사 The Curious Case of Benjamin Button 예제 출력 1 복사 6 예제 입력 2 복사 The first character is a blank 예제 출력 2 복사 6 예제 입력 ..

Algorithm/자료구조와 함께 배우는 알고리즘 (자바편)

09 - 이진검색트리 (자바편)

🌏 주제 : 09 - 이진검색트리 (자바편) 🌏 이진검색트리 (자바편) 이진탐색트리(Binary Search Tree)는 이진 트리 기반의 탐색을 위한 자료구조이다. 전화번호부에서 전화번호를 찾거나, 사전에서 단어를 찾는 탐색 작업을 효율적으로 하기 위한 자료구조이다. 탐색작업을 하기에 앞서, 이진탐색트리의 정의에 대해 알아보면 다음과 같다. 1. 모든 노드의 키는 유일하다. 2. 왼쪽 서브트리의 키들은 루트의 키보다 작다. 3. 오른쪽 서브트리의 키들은 루트의 키보다 크다. 4. 왼쪽과 오른쪽 서브트리도 이진 탐색 트리이다. 🌏 이진탐색트리의 삭제연산 1. 삭제하려는 노드가 단말노드인경우 2. 삭제하려는 노드가 두개의 서브트리중 하나만 가지고 있는 경우 3. 삭제하려는 노드가 두개의 서브트리를 모두 가..

요가하는 개발자
'Algorithm' 카테고리의 글 목록 (4 Page)