공부하기/백준 501

[Java] 백준 풀기 1485 - 정사각형

자바 백준 1485번 실버 3 https://www.acmicpc.net/problem/1485 1485번: 정사각형 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 네 줄로 이루어져 있으며, 점의 좌표가 한 줄에 하나씩 주어진다. 점의 좌표는 -100,000보다 크거나 같고, 100,000보다 작거나 같 www.acmicpc.net 문제 보기 분류: 정렬, 기하학 문제 풀기 네 개의 점을 입력받고 두 점사이의 거리를 모두 계산하여 네 변과 두 대각선의 길이를 각각 비교하여 정사각형을 판단한다. 네 개의 좌표를 통해 총 6가지의 두 점 사이의 거리를 찾을 수 있다. 이 결과를 오름차순 정렬하여 짧은 4개가 같고 긴 2개가 같으면 정사각형 조건임을 이용한다. 코드 보기 import ja..

공부하기/백준 2023.07.22

[Java] 백준 풀기 15904 - UCPC는 무엇의 약자일까?

자바 백준 15904번 실버 5 https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 문제 보기 분류: 문자열, 그리디 알고리즘 문제 풀기 입력된 문자열에 대해 indexOf()를 사용하여 char 타입으로 대문자 `U`, `C`, `P`, `C`의 index를 찾는다. 각 indexOf()는 존재하는 문자를 찾으면 그 문자의 `index`를 반환하고 그렇지 않으면 `-1`을 반환한다. 첫 번째 문자의 탐색이 끝나면 그 ind..

공부하기/백준 2023.07.21

[Java] 백준 풀기 11652 - 카드

자바 백준 11652번 실버 4 https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 문제 보기 분류: 자료 구조, 정렬, 해시를 사용한 집합과 맵 문제 풀기 입력 받은 데이터의 빈도수를 기록하기 위해서 HashMap을 이용한다. key는 입력으로 들어오는 숫자이고, value는 입력된 숫자의 횟수이다. main과 findMostFrequentNumber으로 메서드를 분리하였고 따라서 입력값을 ArrayList에 따로 저장하여 넘겨준다. Has..

공부하기/백준 2023.07.20

[Java] 백준 풀기 11557 - Yangjojang of The Year

자바 백준 11557번 브론즈 1 https://www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net 문제 보기 분류: 구현, 정렬 문제 풀기 테스트 개수 만큼 for loop을 실행시킨다. 학교의 이름과 술 소비량을 입력받으면서 소비량이 이전에 입력 받은 값보다 큰지 확인을 하고 만약 크다면 그 값과 학교 이름을 저장한다. 모든 학교와 소비량이 입력되면 최대 소비량 데이터를 얻을 수 있다. 최대값 찾기 메서드의 최종 데이터를 Abstr..

공부하기/백준 2023.07.19

[Java] 백준 풀기 11726 - 2xN 타일링

자바 백준 11726번 실버 3 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 보기 분류: 다이나믹 프로그래밍 문제 풀기 지속적으로 타일을 채우는 방법은 이전 타일을 채우는 방법의 연장선이기 때문에 Dynamic Programming을 이용하여 방법의 개수를 구한다. n은 최대 1000까지 주어졌으므로 1001개의 array를 지정하여 모든 답을 저장하고 n에 대한 답만 출력한다. n = 1 일때 방법의 수는 1 n = 2 일때 방법의 수는 2 이 두 초기화..

공부하기/백준 2023.07.18

[Java] 백준 풀기 2530 - 인공지능 시계

자바 백준 2530번 브론즈 4 https://www.acmicpc.net/problem/2530 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 문제 보기 분류: 수학, 사칙연산 문제 풀기 쉬운 이해를 위해 순차적으로 hour과 minute를 second로 변환하고 조리 시간을 더하여 총 시간을 seconds로 만든다. 조리 후 시각을 구하기 위해 hour은 총 seconds를 60분 x 60초로 나눈 후 24시로 나눈 나머지로 계산하고, minute는 총 seconds를 60분 x..

공부하기/백준 2023.07.17

[Java] 백준 풀기 10811 - 바구니 뒤집기

자바 백준 10811번 브론즈 2 https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 문제 보기 분류: 구현, 시뮬레이션 문제 풀기 배열에 1부터 N까지 순차적으로 숫자를 저장하여 초기화 한다. i와 j를 입력받고 reverseBaskets() 메서드를 시행한다. reverseBaskets() 메서드는 i와 j로 지정된 구간의 양 끝의 수를 서로 바꾸고, 그 다음 i + 1, j - 1 교환, i + 2, j - 2 교환하는 방식으로 whi..

공부하기/백준 2023.07.15

[Java] 백준 풀기 11536 - 줄 세우기

자바 백준 11536번 실버 5 https://www.acmicpc.net/problem/11536 11536번: 줄 세우기 이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다. 만약 위의 두 경우가 아니라면 NEITHER를 출력한다. www.acmicpc.net 문제 보기 분류: 구현, 문자열, 정렬 문제 풀기 입력받은 문자들을 compareTo() 메서드를 사용하여 정렬 순서를 확인할 수 있다. 모든 이름을 배열에 입력받고, 오름차순과 내림차순의 상태를 지정할 초기값을 설정한 후 현재 이름과 이전 이름의 순서에 따라 초기값 변경이 이루어지는 결과에 따라 "INCREASING", "DECREASING", "NEITHER"을 판별한다. compar..

공부하기/백준 2023.07.14

[Python] 백준 풀기 23234 - The World Responds

파이썬 백준 23234번 브론즈 5 https://www.acmicpc.net/problem/23234 23234번: The World Responds In many introductory computer programming classes, the first program that students learn to write just prints “Hello, world!” It is used as a first assignment because it is a simple program that produces output. The program dates back to at least 1974, www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 print() 를 이용하여 주어진 문자를 출력..

공부하기/백준 2023.07.13

[Java] 백준 풀기 1076 - 저항

자바 백준 1076번 브론즈 2 https://www.acmicpc.net/problem/1076 1076번: 저항 전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한 www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 주어진 표의 색, 값을 해시맵의 key, value로 저장한다. 저항을 계산하는 방법에 따라 첫 번째 색의 값에 10을 곱하고 두 번째 색의 값과 합한다. 세 번째 색으로 가져온 value를 지수로 사용하여 그 실제 값을 구한다. 이때 Math.pow()를 사용하고 이전에 첫 번째와 두 번째 색으로 구한 값과 곱한 뒤 출력한다. 코드 보..

공부하기/백준 2023.07.12