본문 바로가기

반응형

알고리즘/백준문제풀이

(8)
백준 2504 괄호의 값 java 문제 설명 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 값(X)로 표시한다. ‘()’ 인 괄호열의 값은 2이다. ‘[]’ 인 괄호열의 값은 3이다. ‘(X)’ 의 괄호값은 ..
백준 11659 구간 합 구하기4 / JAVA 분류 누적 합 제출 일자 2023년 11월 27일 21:25:16 문제 설명 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 전에 풀었던 문제인데 Scanner 대신 BufferedReader를 사용해서 풀었다. 알고리즘은 동일하다. bf사용해서 입력받고 입력받으면서 합 구해서 합배열 바로 생성함 입력받는 동시에 구간합 알고리즘으로 답 구한 후 result 배열에..
백준 1806 부분합 / 자바 java 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다. 중심 아이디어 투포인터 알고리즘을 사용 함 https://dev-tatolee.tistory.com/entry/%EB%91%90-%ED%8F%AC%EC%9D%B8%ED%84%..
백준 11659 구간 합 구하기 4 JAVA 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 흔한 구간합 구하기 문제인데 나는 딱 구간합 구하기 이론만 아는 상태로 얼레벌레 풀었다 구간합 배열을 만들어놓고 2~4 까지의 합이면 4까지의 합에서 1까지의 합을 빼는 방법이다 제출한코드 import java.util.Sc..
백준 27866 문자와 문자열 / Java https://www.acmicpc.net/problem/27866 27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 단어 S와 정수 i가 주어졌을 때, S의 i번째 글자를 출력하는 프로그램을 작성하시오. S의 길이는 최대 1000 i
백준 25083 새싹 - Java https://www.acmicpc.net/problem/25083 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net 입력없이 새싹모양 출력만 있는 문제 ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | 다음과 같은 모양을 출력해야함 문제가 되는 부분은 따옴표(" , ')의 출력과 역슬래쉬(\)의 출력 두 경우 모두 앞에 역슬래쉬(\)를 붙이면 역슬래쉬제외하고 원하는 대로 출력됨 \' 출력시 ' 로 출력 \\ 출력시 \\로 출력 따라서 다음과 같이 제출시 정답 class Main { public static void main(String[] args) throws Exception { System.out.println(" ,r\'\"7"); System..
백준 1152번 파이썬 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 이거 파이썬으로 풀면 너무 간단함 list로 입력받고 list길이 출력하면 됨 x = list(map(str,input().split())) print(len(x)) map이 입력된 값을 여러 변수에 나누어 담아주는 함수 x,..
백준 2439번 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 5 * ** *** **** ***** 왜 이건 틀리고 n=int(input()) for i in range(n): for j in range(n-i): print(" ",end='') for j in range(i+1): print("*",end='') print() 이건 맞지 n=int(input()) for i in range(1,n+1): print(" "*(n-i)+"*"*i) 지금 술마셔서 좀 헷갈린다 낼 다시봐야지 어제쓴건데 첫번째를 n=int(input()) for i in range(n): for j in range(n-i-1): print("..

반응형