[백준/Silver III] 단어 뒤집기 2 - 17413
·
알고리즘/백준
분류자료 구조, 구현, 스택, 문자열 문제 설명문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다.먼저, 문자열 S는 아래와과 같은 규칙을 지킨다.알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다.문자열의 시작과 끝은 공백이 아니다.''가 문자열에 있는 경우 번갈아가면서 등장하며, '태그는 ''로 끝나는 길이가 3 이상인 부분 문자열이고, '' 사이에는 알파벳 소문자와 공백만 있다. 단어는 알파벳 소문자와 숫자로 이루어진 부분 문자열이고, 연속하는 두 단어는 공백 하나로 구분한다. 태그는 단어가 아니며, 태그와 단어 사이에는 공백이 없다.입력첫째 줄에 문자열 S가 주어진다. S의 길이는 100,000 이하이다.출력첫째 줄에 문자열 S의..
[백준/실버Ⅳ] 큐 - 10845
·
알고리즘/백준
분류자료 구조, 큐 문제 설명정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 큐에 들어있는 정수의 개수를 출력한다.empty: 큐가 비어있으면 1, 아니면 0을 출력한다.front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다...
백준 1110번 더하기 사이클
·
알고리즘/백준
문제0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자.26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 ..
백준 1978번 소수찾기
·
알고리즘/백준
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.www.acmicpc.net문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.출력주어진 수들 중 소수의 개수를 출력한다.예제 입력 1 복사41 3 5 7예제 출력 1 복사3문제풀이숫자를 입력받을 때 map함수를 사용하여 int 타입과 공백을 구분하기 위해 split함수를 사용split을 적용할 경우 예 1 12 3 출력 1 , 12 , 3..
[파이썬 알고리즘 인터뷰] 배열 - 빗물 트래핑
·
알고리즘
문제설명 - 높이를 입력받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지 계산하라. 예시 #입력 [0,1,0,2,1,0,1,3,2,1,2,1] #출력 6 풀이 left는 height 배열 왼쪽부터 시작을 하고 right는 배열 오른쪽부터 시작을 한다. left_max 와 right_max는 height 배열의 원소값이다. 둘의 값을 비교하여서 left값이 더 작거나 같을 때는 left 배열값을 1 더해주어 점점 오른쪽으로 이동을하고 반대로 left값이 더 클경우 right 배열값을 1감소시켜 왼쪽으로 이동 시킨다. 비교를 하면서 좌우 기둥 최대높이 Left_max, right_max가 현재높이와의 차이만큼 물높이 volume 을더해나간다. def trap(height): volume = 0 left, ..