공부하기 508

[Python] 백준 풀기 5622 - 다이얼

파이썬 백준 5622번 브론즈 2 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 문자열을 입력받아 하나씩 순차적으로 하나씩 빼낸다. 동일한 알파벳에 대해 조건을 주고 걸리는 시간을 누적해 더한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnMakeACall(text): total_sec = 0 for t in text: if t == 'A' or t == 'B' or t == 'C': total_sec += 3 elif t == 'D' or..

공부하기/백준 2023.01.14

[Java] 백준 풀기 2744 - 대소문자 바꾸기

자바 백준 2744번 브론즈 5 https://www.acmicpc.net/problem/2744 2744번: 대소문자 바꾸기 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 자바를 연습하다. toCharArray() 로 주어진 문자들을 리스트에 char 타입으로 입력받는다. char 타입은 ASCII 코드의 10 진수인 정수로 저장이 되기 때문에 크기 비교를 통해 조건을 준다. (대문자 Z 90 보다 작거나, 소문자 a 97 보다 크거나) 대문자와 소문자는 ASCII 코드 10 진수에서 32 만큼 차이가 있기 때문에 이를 이용하여 연산을하여 대문자 -..

공부하기/백준 2023.01.13

[Java] 백준 풀기 2738 - 행렬 덧셈

자바 백준 2738번 브론즈 5 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 자바 연습을 위해 온라인 컴파일러로 하나하나 출력해 보며 풀어본다. Scanner 를 준비하여 nextInt() 로 n 과 m 을 입력받는다. 2차원 배열 a_array, b_array 그리고 result_array 를 생성하고 이중 for loop 을 통해 각각의 array 에 값을 저장한다. 두 array ..

공부하기/백준 2023.01.12

[Python] 백준 풀기 2747 - 피보나치 수

파이썬 백준 2747번 브론즈 2 https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 초기값인 0 번째는 0, 1 번째는 1 을 저장한 뒤, 피보나치 수의 합의 식을 따르는 Fn = Fn-1 + Fn-2 (n ≥ 2) 를 적용하여 구하고자 하는 피보나치 수까지 계산하면 리스트에 저장하고 마지막 index 값을 출력한다. 코드 보기 import sys inputdata = sy..

공부하기/백준 2023.01.11

[Python] 백준 풀기 2851 - 슈퍼마리오

파이썬 백준 2851번 브론즈 1 https://www.acmicpc.net/problem/2851 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 문제 보기 분류: 구현, 브루트포스 알고리즘, 누적 합 문제 풀기 누적 합이 100 을 넘기지 못했을 경우에 대한 조건을 추가해야 한다는 것을 잊지 말아야 한다. 코드 보기 import sys inputdata = sys.stdin.readline if __name__ == "__main__": running_total_ls = [0] * 10 running_total_ls[0] = int(inputdata().strip()..

공부하기/백준 2023.01.10

[Python] 백준 풀기 2562 - 최댓값

파이썬 백준 2562번 브론즈 3 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 주어진 숫자들을 리스트에 저장한 후 하나씩 빼내어 최댓값을 찾는다. 다시 for loop 을 통해 리스트 안의 값에서 이미 저장된 최댓값과 같은 값이 나올경우 그 값과 위치인 i + 1 을 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnW..

공부하기/백준 2023.01.09

[Python] 백준 풀기 2455 - 지능형 기차

파이썬 백준 2455번 브론즈 3 https://www.acmicpc.net/problem/2455 2455번: 지능형 기차 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 for loop 이 돌때마다 각 역에서 내린 사람 수, 탄 사람 수를 입력받고 총 승객의 수를 업데이트를 한다. 이 결과를 리스트에 모아 저장을 한 후 max() 함수를 이용하여 최대값이 출력 되도록 한다. 코드 보기 import sys inputdata = sys.stdin.readline if __name__ ..

공부하기/백준 2023.01.08

[Python] 백준 풀기 1302 - 베스트셀러

파이썬 백준 1302번 실버 4 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제 보기 분류: 자료 구조, 문자열, 정렬, 해시를 시용한 집학과 맵 문제 풀기 리스트에 책의 정보를 모두 입력받고 알파벳 순으로 정렬을 한다. 서로 인접한 리스트인 i-1, i 번째를 각각 비교하면서 동일한 책이면 카운트 +1 을 다른 책이면 카운트를 초기화한다. 카운트의 값이 지금까지 누적된 max_count 보다 커지면 새로이 베스트셀러 책으로 등록을..

공부하기/백준 2023.01.07

[Python] 백준 풀기 11948 - 과목 선택

파이썬 백준 11948번 브론즈 4 https://www.acmicpc.net/problem/11948 11948번: 과목선택 JOI는 물리, 화학, 생물, 지구과학, 역사, 지리 총 6 과목의 시험을 봤다. 각 시험의 만점은 100점이다. JOI는 물리, 화학, 생물, 지구과학 4과목 중에서 3 과목을 선택하고 역사, 지리 2 과목 중에 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 물리, 화학, 생물, 지구과학 4 과목과 역사, 지리 2 과목을 나누어 리스트에 입력 받는다. 오름차순 정렬을 하고 최고 점수의 합이 나올 수 있는 4 개중 3 개, 2 개중 1 개의 과목을 선택하여 전체 합을 구한다. 코드 보기 import sys inputdata = sys.stdin...

공부하기/백준 2023.01.06

[Python] 백준 풀기 1269 - 대칭 차집합

파이썬 백준 1269번 실버 4 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 보기 분류: 자료 구조, 해시를 사용한 집학과 맵, 트리를 사용한 집학과 맵 문제 풀기 각 집합의 원소의 개수가 200,000 개여서 시간 초과 안걸릴거라 생각했다가 제출하고 보니 x in List 연산 이 O(n) 의 시간 복잡도를 갖는다는 것을 알았다. 이번 기회를 통해 파이썬의 집합 기호에 대해 알게 되었다. 교집합 set_a & set_b 합집합 ..

공부하기/백준 2023.01.05