본문 바로가기
  • < / >

Algorithm/Beakjoon9

[백준] 2745 진법 변환 (C++) 진법변환 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 입력 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. 출력 첫째 줄에 B진법 수 N을 10진법으로 출력한다. 예시 입력 출력 ZZZZZ 36 60446175 문제 해석 이 문제는 수학, 구현, 문자열 문제로 숫자 다음에 A~Z 를 어떻게 지정 하여야 할까가 고민이 됬던 문제이다. 해결 방법은 ASCII code를 이용해서 A부터 10으로 .. 2023. 5. 15.
[백준] 2563_색종이 (C++) 색종이 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 출력 3 7 15 7 5 2 260 문제 해석 이 문제는 2차원 배열의 문제로 전체 100,100인 도화지를 2차원 배열로 선언후 1단위로 잘게 쪼개서 색종이가 있는 부분을 1로 만들어 1을 세어 넓이를 구하는 방식으로 접근하는 하였다. ****겹친.. 2023. 5. 14.
[백준] 10798 (C++) 제목세로읽기 문제 아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. 이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래 그림 1은 영석이가 칠판에 붙여 만든 단어들의 예이다. A A B C D D a f z z 0 9 1 2 1 a 8 E W g 6 P 5 h 3 k x 한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진다. 또한 만들어진 다섯 개의 단어들의 글자 개수는 서로 다를 수.. 2023. 5. 13.
[백준] 2908 (python) 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력: 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력: 첫째 줄에 상수의 대답을 출력.. 2022. 11. 9.
[백준] 1152 (python) 단어의 개수 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. python #첫번째 방법 word = input().split() print(len(word)) #두번째 방법 print(len(input().split())) 코드해석 .split()으로 받아오면 ex) 'hello world'의 경우 ['hello' , 'world'] 로 입력을 받아오게 된다. 이것의 길이를 len() 함수로 개수를 세어 준다. 2022. 10. 24.
[백준] 1157 (python) 글 읽기 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입출력 예시 python a = input().lower() list = list(set(a)) #반복문을 위해 단어의 중복을 지운다. list_count=[] for i in list:#각각의 단어 마다 for문 count = a.count(i)#a 안에 i 가 몇개 있는지 센다. list_count.append(count) #list_count에 각 문자열 마다 센 개수를 넣어준다. #현재 리스트 상황 #Ex)banana #a='banana' #list=['b','a','n'] #list_count=[1,3,2] if list_.. 2022. 10. 23.
[백준] 2747 (C++) 피보나치 수 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입출력 예시 입력 10 출력 55 C++ #include int Fibonacci(int n){ int n1 =0; int n2 =1; int result =0; for (int i = 0; i 2022. 10. 22.
[백준] 11720 (python) 숫자의 합 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 문제 해석 이 문제는 단순히 입력값을 모두 더하는 것이 아니라 정해진 입력값의 값을 받아온 후 제한된 입력값의 숫자를 입력 하여 모두 더하여야 한다. python N = int(input()) n = str(input()) sum = 0 for i in range(N): sum = sum + int(n[i]) print(sum) N과 n을 각각 int 형과 str 형으로 받아온다. 반복문을 이용하여 제한된 N의 범위에서 문자열로 받아온 n의 각각의 자리수를 더해준다. 2022. 10. 21.
[백준] 11654 (python, C++) 문자를 아스키 코드로 변환 문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. python asc = input() print(ord(asc)) ord()함수는 문자를 아스키 코드로 chr()함수는 아스키 코드를 문자로 변환해준다. c++ #include using namespace std; int main(){ char x ; cin >> x ; cout 2022. 10. 20.