반응형

<알고리즘 문제풀이&연습> 103

[백준 9012] 괄호 (stack)

안녕하세요. BlockDMask 입니다.백준 알고리즘 사이트에서 단계별로 풀어보기를 하나하나 하고있습니다. ㅎㅎ0. 제목백준 9012 괄호BOJ 9012 괄호1. 문제설명 괄호 문자열 (Parenthesis String, PS)는 '(', ')' 만으로 구성되어 있는 문자열을 말합니다.흔히 우리가 말하는 소괄호.! 그 중 괄호의 모양이 바르게 구성된 올바른 괄호 문자열을 Valid PS, VPS라고 부릅니다. "()" 는 VPS 입니다."()()(())" 는 VPS 입니다."())" 는 VPS 가 아닙니다. 처음 Test할 문자열의 갯수 N이 들어오고 그다음 문자열이 N개 만큼 들어옵니다. 입력된 괄호 문자열이 올바른 괄호 문자열(VPS)이면 "YES"를 아니면 "NO"를 한줄에 하나씩 출력하시오. 2...

[백준 1016] 제곱ㄴㄴ수

안녕하세요. BlockDMask 입니다.오늘자 문제 "제곱 ㄴㄴㄴㄴㄴㄴㄴㄴ 수 " 풀어보겠습니다. 이 문제 생각하는데 너무 오래걸렸어..0. 제목백준 1016 제곱ㄴㄴ수BOJ 1016 제곱ㄴㄴ수1. 문제설명 어떤 수가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱 ㄴㄴ 수라고 합니다. 제곱수는 정수의 제곱. min과 max의 범위가 주어지면 min, max를 포함한 사이에 제곱 ㄴㄴ 수가 몇 개 있는지 출력하는 문제. min의 조건은.1 min >> max; long long sq_max = (long long)sqrt(max); //범위 내 제곱값이 될 수 있는 가장 큰수 long long cntNum =0; //제곱들의 개수 for(long long i=2; i

[백준 11005] 진법 변환 2

안녕하세요. BlockDMask 입니다.오늘은 11005번 진법 변환2 을 풀어보았습니다.블로그 글을 늦게 올려서... 어제(9/18)일자 문제입니다.0. 제목백준 11005 진법 변환 2BOJ 11005 진법 변환 21. 문제설명 10진수 수 n 이 주어지고 ( n > b; vector v; while(1){ v.push_back(n%b); //해당 진수로 나눈 나머지를 vector에 넣음 n /= b; if(n==0) break; } vector::reverse_iterator iter; for(iter = v.rbegin(); iter != v.rend(); iter++){ if(*iter>=10){ char c = *iter-10+'A'; //10 이상의 알파벳은 char 타입으로 출력 cout

[백준 2908] 상수

안녕하세요. BlockDMask 입니다.이번 문제는 170809 일자 채우기 문제입니다. 0. 제목백준 2908 상수BOJ 2908 상수1. 문제 설명 자릿수가 세 자리인 숫자가 입력으로 들어온다. 두 수를 거꾸로 읽었을때 큰 수를 출력하면 된다. 두수는 같지 않은 세 자리 수이며, 0 이 포함 되어 있지 않다. 2. 풀이 과정 자릿수에 관한 문제이므로 1의 자리는 10으로 나누었을때 나머지 10의 자리는 100으로 나누었을때 나머지 100의 자리는 1000으로 나누었을 때 나머지 이다. 이것을 이용하여 똑바로된 수의 1의 자리를 변경될 수의 100의 자리로. 옮기는 방식으로 하면된다. 똑바로 된 수를 10으로 나누어서 두자리 수로 줄이고 그것의 1의 자리를 변경될 수의 10의 자리로. 두자리 수인 똑바..

[백준 2675] 문자열 반복

안녕하세요. BlockDMask 입니다.오늘 문제는 170808 일자 채우기 문제 입니다.0. 문제BOJ 2675 문자열 반복백준 2675 문자열 반복1. 문제설명 문자열 s를 입력 받으면 각각의 문자를 r번 반복해서 새 문자열 t 를 만든 후 출력하는 프로그램을 만드시오. 3 ABC 이면 AAABBBCCC 를 출력하면 됩니다. 문자열 s 는 QR Code "alphanumeric" 문자인 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*+_./: 입니다 첫번 째 줄엔 T(1

[Level 4] 숫자의 표현

안녕하세요. BlockDMask 입니다.오늘은 Level 4의 '숫자의 표현'을 풀어봤습니다.날이 점점 추워지네요.... 일교차도 크고;;감기 조심하세요;;0. 문제Programmers Level 4 숫자의 표현Programmers Level 4 expressions1. 문제설명연속된 자연수 합으로 어떤 숫자를 표현하는 방법이 여러가지 입니다.예를들어 자연수 15는 1+2+3+4+5 = 15 4+5+6 = 15 7+8 = 15 15 = 15 로 표현이 가능합니다.숫자를 입력받아 연속된 수로 표현할 수 있는 케이스의 개수를반환하는 expression 함수를 완성하면 됩니다.15가 들어오면 4를 반환하면 됩니다.2. 풀이과정총 두가지 방법으로 문제를 풀어보았습니다. 단순하게 생각해서 1)번 으로 풀었는데 시..

[Level 3] 멀리 뛰기 (jumpCase)

안녕하세요 BlockDMask 입니다.오늘은 Level 3 멀리뛰기 를 풀어봤습니다.let's get it0. 제목Programmers Level 3 멀리 뛰기Programmers Level 3 JumpCase1. 문제설명멀리뛰기를 연습하는 학생이 있는데한번에 1칸 또는 2칸을 뛸수 있습니다.예를 들어 칸이 4개 있을때. 1칸 1칸 1칸 1칸 1칸 2칸 1칸 2칸 1칸 1칸 1칸 1칸 2칸 2칸 2칸 으로 갈 수 있다.총 5가지 방법.이런식으로 칸의 수 n 이 주어질 때.끝에 도달하는 방법이 몇가지 인지 출력하는 jumpcase 함수를 완성하시오.2. 풀이과정딱 문제를 보자마자DP (Dynamic Programming) 가 생각 났습니다.작은것에서 큰것으로 가는 bottom up 방식으로 풀면 됩니다. ..

[Level 3] 시저 암호 (caesar)

안녕하세요 BlockDMask 입니다.오늘은 Level 3에 있는 시저 암호 라는 문제를 풀어보았습니다.빨리 level 3 풀고 4, 5, 6, ~~~ 쭉쭉 넘어가고 싶네요.0. 문제Programmers Level 3 시저 암호Programmers Level 3 Caesar Code1. 문제설명어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라 한다.a를 4만큼 밀면 e가 되고Z를 2만큼 밀면 A가 된다.입력이 문자열이 들어오고, 공백은 수정하지 않는다.시저암호로 변경된 문자열을 출력하면 됩니다.2. 풀이과정string으로 들어오는 문자열을 const char * 타입의 char 배열로 만들어서 다룰 생각을 했습니다.그 다음 알파벳을 n 만큼 더하여서 출력을..

[백준 1912] 연속합 (수열)

안녕하세요. BlockDMask 입니다.상큼하게 월요일 문제 풀어봤습니다.0. 문제백준 1912 연속합BOJ 1912 연속합1. 문제설명 N개의 수열이 주어집니다. 이중 연속된 몇개의 숫자를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 합니다. 선택할 수는 적어도 하나 이상 이어야합니다. N의 범위는 (1

반응형