728x90
반응형

전체 글 161

[JAVA / 자바] 백준 10757번 - 큰 수 A+B

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10^10000) 출력 첫째 줄에 A+B를 출력한다. 문제 접근 방법 이번 문제는 숫자를 입력받는 변수형에 저장이 안 될 만큼 큰 수를 더하는 문제이다. 따라서 기존처럼 변수에 저장해서 더하는 단순한 문제가 아니다. 물론 JAVA로 문제를 MATH패키지에서 제공하는 BigInteger클래스를 선언하여 쉽게 풀 수 있는 방법도 있으나, c/c++ 같은 경우는 큰 수의 연산이나 저장을 지원하는 패키지가 없다. 따라서 1차원 배열을 만들어 자릿수 별로 각각 다른 인덱스에 저장하여 한 자리씩 덧셈을 해준다. 이때, 두 수의 자릿수가 항상 같으리라는 보장이 없으므로 두 배열..

카테고리 없음 2021.12.22

[JAVA / 자바] 백준 2839번 - 설탕 배달

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확..

[JAVA / 자바] 백준 10250번 - ACM 호텔

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와줄 프로그램을 작성하고자 한다. 즉 설문조사 결과대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모든 ..

[JAVA / 자바] 자바의 데이터 타입

변수 (Variable) - 어떤 값을 저장하는 공간 - 사용할 변수 선언(변수에 저장할 값의 타입, 즉 데이터 타입을 함께 선언) 기본 타입(primitive type) : 키워드로 정의된 8개의 기본 데이터 타입 - 정의된 형태의 값을 변수에 저장하기 위한 데이터 타입(문자 데이터 저장 시 유니코드 값 사용) - 데이터 타입을 사용하여 변수를 선언하면, 해당 타입에 따라 정해진 메모리 크기가 변수에 할당 구분 기본 타입 메모리 크기 (byte: 바이트) 정수타입 byte 1 short 2 int 4 long 8 char 2 부동 소수점 타입 float 4 double 8 불리언 타입 boolean - 참조 타입(reference type) - 참조값(reference value)을 다루기 위한 데이터..

[JAVA / 자바] 자바 프로그래밍

자바 프로그램의 구조 public class Main{ // 클래스 시작 public static void main(String args[]){ // 메소드 시작 //메소드 본체 시작 System.out.println("Hello, World."); // 명령문 //메소드 본체 끝 } // 메소드 끝 } // 클래스 끝 ex) 클래스 이름: Main 메서드 이름: main 클래스 - 자바 프로그램을 구성하는 단위 - 클래스 이름과 본체로 구성 - 본체에 한 개 이상의 메서드 포함 메서드 - 수행할 명령문의 묶음 - 메서드 이름과 본체로 구성 - 본체에 한 개 이상의 명령문 포함 - main 메소드 > 자바 프로그램의 실행 시작 지점 프로그램 실행 과정 컴파일러의 작업: 소스파일을 컴퓨터가 실행할 수 있는..

[JAVA / 자바] 백준 2869번 - 달팽이는 올라가고 싶다

문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 문제 접근 방법 달팽이는 낮에 올라가서 밤에 미끄러진다. 그렇다면 하루 동안 올라간 높이 = 올라간 높이 - 미끄러진 높이 가 된다. 그런데 이때 달팽이는 정상에 닿으면 미끄러지지 않고 오르기만..

[JAVA / 자바] 백준 1712번 - 손익분기점

문제 월드 전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만 원이 들며, 열 대 생산하는 데는 총 1,700만 원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총수입(판매비용)이 총비용(=고정비용+가변비용) 보다 많아지게 된다. 최초로 총수입이 총비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다. A, B, C가 주어졌..

백준 잔디심기(1일 1문제) '실버1' 승급 회고록 _ 12/15, 2021(WED)

서론 백준 잔디심기를 한 지 이제 3주 차에 다다랐다. 며칠 전에 2주 차 회고록을 조금 늦게 작성하게 되었는데 그래서 그런가 일주일도 안 지나서 회고록을 쓰게 되었다. 전 게시글에서 말했듯이 티어가 오를 때마다 회고록을 작성한다 했는데 주 단위보다는 티어 승급 시 올리는 게 더 맞다는 판단이 들었다. 왜냐면 주마다 느끼는 것보다 티어를 올릴 때마다 느끼는 게 확실히 다른 것 같다. 아직은 내가 실버라서 티어를 올리는데 그렇게 오랜 시간이 걸리지는 않지만, 나중 되면 아마 회고록을 쓰는 텀이 길어지지 않을까,,,?라는 생각이 든다. (따라서 이번 글부터는 N주차 회고록이 아닌 티어 승급 회고록으로 제목을 바꿔 올리기로 했다.) 본론 이번 주, 아니 다시. 이번 실버 1로 승급하면서 잔디에 공백은 생기지 ..

카테고리 없음 2021.12.15

[JAVA / 자바] 백준 2941번 - 크로아티아 알파벳

문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž 는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. 단어는 크로아티아 알파벳으로 이루어져..

[JAVA / 자바] 백준 1152번 - 단어의 개수

문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 문제 접근 방법 이번 문제는 변수.next() 함수의 특성을 알면 정말 싱겁게 끝나는 문제이다. Scanner클래스의 변수.next() 함수는 공백을 기준으로 문자를 입력받는 함수이다. 따라서 입력 사이에 공백이 어디에 어떻게..

728x90
반응형