Algorithm234 [백준] 2292번 : 벌집 - Java https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 알고리즘 N 벌집 개수(방 개수) COUNT (최소 루트) 1 1 1 2 ~ 7 6 2 8 ~ 19 12 3 20 ~ 37 18 4 38 ~ 61 24 5 N이 속해 있는 범위 내의 숫자들 : 최소 루트가 동일함 벌집 개수 : 6의 배수로 증가 풀이 1. Scanner import java.util.Scanner; public class Main { public static void main(String[.. 2022. 3. 23. [백준] 1712번 : 손익분기점 - Java https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 주의점 처음으로 이익이 발생하는 지점의 판매량 출력 A, B, C = 자연수 알고리즘 고정 비용(불변 비용) = A (상품 개수와 상관 없이 항상 동일함) 가변 비용 = B 상품 가격 = C 상품 개수 = n n x 상품 가격(C) > 고정 비용(A) + (n x 가변 비용(B)) n x C = 총 수입 //총 수입 = 총 비용 n x C = A + (n x B) nC = A + nB nC - nB =.. 2022. 3. 22. [백준] 1316번 : 그룹 단어 체커 - Java https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 주의점 문자열의 문자가 연속되지 않아야 함 + 이전에 해당 문자가 입력된 적이 있으면 그룹 단어가 아님 그룹 단어의 개수 출력 풀이 1. Scanner import java.util.Scanner; public class Main { /* main & check 함수에서 Scanner 쓰기에 main 함수 밖에 전역 변수로 static 붙인 Scanner 생성 */.. 2022. 3. 22. [백준] 2941번 : 크로아티아 알파벳 - Java https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 주의점 크로아티아 알파벳 개수 세기 배열 사용할 때 인덱스가 범위를 벗어나는지 유의해야 8개의 문자는 특정 조건에 의해 변경되어 하나의 문자를 이룸 풀이 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new S.. 2022. 3. 22. [백준] 5622번 : 다이얼 - Java https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 주의점 대문자로 입력 시간의 합 구하기 구현 방법 Scanner + for 문 + switch-case BufferedReader + for 문 + switch-case System.in + for 문 + switch-case 풀이 1. Scanner + for 문 + switch-case import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scan.. 2022. 3. 21. [백준] 2908번 : 상수 - Java https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 주의점 입력 받는 두 수 : 세 자릿수 고정 + 공백 기준으로 구분됨 입력 받은 두 수를 뒤집은 값 중 더 큰 값 출력 구현 방법 Scanner + StringBuilder.reverse() BufferedReader + StringTokenizer + StringBuilder.reverse() System.in.read() + 연산 풀이 1. Scanner + StringBuilder.reverse() im.. 2022. 3. 21. [백준] 1152번 : 단어의 개수 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 주의점 문자열 앞뒤에 공백이 있을 수 있음 = 공백의 개수 대로 숫자를 세면 예외 발생할 수 있음 구현 방법 1. 입력 1.1. Scanner & BufferedReader 많이 쓰는 입력 방식 1.2. System.in.read() 기본 입력 스트림 buffer 사용 X 원시 입력 형태로 문자 하나씩 읽어들여 문자가 공백인지 아닌지에 따라 count++ 하기 2. 공백 기준으로 분리 2.1.. 2022. 3. 21. [백준] 1157번 : 단어 공부 - Java https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 주의점 가장 많이 반복된 문자가 2개 이상이면 ? 출력 대문자, 소문자 구분 X 출력 문자 = 대문자 참고 자료 아스키코드 표 구현 방법 System.in.read() read(): 값을 문자 타입으로 받음 문자를 하나씩만 가져올 수 있음 + 아스키코드로 변환하여 가져옴 Scanner, BufferedReader 사용하지 않고 입력값을 받을 수 있음 Buffer (InputStream) 사용하기에 효율적임 IOException 처.. 2022. 3. 18. [백준] 2675번 : 문자열 반복 - Java https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 풀이 1. Scanner + charAt() import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); for(int i = 0; i < T; i++) { int R = in.nextInt.. 2022. 3. 18. [백준] 10809번 : 알파벳 찾기 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 주의점 입력으로 주어지는 문자열 : 알파벳 소문자 a ~ z 까지 모두 출력 ➡ 주어진 문자열의 각 문자가 처음으로 나오는 위치 출력 문자 위치 : 0부터 시작(문자열 첫 문자의 위치 = 0) arr 배열의 인덱스(원소 위치) ch 가 갖고 있는 문자 인코딩값(=아스키코드값과 동일)에 - 'a' or - 97 해주기 a: 97 이라는 값에 대응됨(10진수) 문자열을 앞에서부터 검사할 .. 2022. 3. 16. [백준] 11720번 : 숫자의 합 - Java https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 구현 방법 charAt() 해당 문자의 아스키코드 값 반환 해당 문자 - 48 / 해당 문자 - '0' : 이렇게 해야 입력 받은 값 그대로 사용 가능 getBytes() 1. 정의 String을 하나의 byte 배열로 변환해주는 메소드 2. 특징 java.lang.String 패키지에 있는 메소드 ➡ import문 불필요 해당 문자 - 48 / 해당 문자 - '0' : 이렇게 처리해야 아스키코드값 ➡ 입력 받은 값 그대로 사용 가능 풀이 1. Scanner + charAt() .. 2022. 3. 16. [백준] 11654번 : 아스키 코드 - Java https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); //String으로 입력 받기 //But, Scanner: 정규식이 많이 이용되기에 성능 low //charAt()으로 문자열 잘라 문자로 변환 //int 타입 변수에 저장 ➡ 문자에 대응하는 값, 즉 아스키코드값 저장.. 2022. 3. 16. 이전 1 ··· 13 14 15 16 17 18 19 20 다음