반응형

전체 글 408

[백준 2309] 일곱 난쟁이 (브루트 포스)

안녕하세요. BlockDMask 입니다.오늘은 백준 온라인 저지에 단계별로 풀어보기 중 브루트 포스 카테고리에 있는 문제를 풀어보았습니다.170904 문제 빼먹음 -> 171006 완료 0. 문제백준 2309 일곱 난쟁이 (브루트 포스)BOJ 2309 일곱 난쟁이 (brute force)**Brute Force(브루트 포스)란 : 무식하게 푼다, 가능한 방법을 전부 만들어 보는 알고리즘, 완전탐색(exhaustive search)라고도 합니다. 1. 문제설명 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. (백설공..

[백준 4673] 셀프 넘버

안녕하세요. BlockDMask 입니다.추석날 2번째 문제 입니다. 왔다 갔다 차안에서 문제를 풀고 있습니다. 길이 많이 막히네요;;170818 문제 빼먹음 -> 171004 완료0. 제목백준 4673 셀프 넘버BOJ 4673 self number1. 문제 설명 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다.양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의한다.예를 들어 d(42) = 42 + 4+ 2 = 48 이다. 양의 정수 n 이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ... 과 같은 무한 수열을 만들 수 있다. 예를들어, 33으로 시작한다면 다음수는 33 + 3 + 3 = 39 이고, 그 다음 ..

[백준 2941] 크로아티아 알파벳

안녕하세요. BlockDMask 입니다.다들 즐추 하고 계시죠? 중간에 시간이 좀 떠서 문제를 풀어 보았습니다.170814 문제 빼먹음 -> 171004 완료0. 제목백준 2941 크로아티아 알파벳BOJ 2941 크로아티아 알파벳1. 문제 설명 이전 운영체제에서는 크로아티아 알파벳을 입력할 수 없었다고 한다. 아래 그림과 같이 크로아티아 알파벳을 변경해서 입력했습니다. 크로아티아 알파벳 변경 č c= ć c- dž dz= ñ d- lj lj nj nj š s= ž z= 이런식으로 바꾸어 사용합니다. 예를 들어, ljes=njak 는 크로아티아 알파벳 6개로(lj, e, š, nj, a, k)로 이루어져있다. ddz=z= 는 크로아티아 알파벳 3개로(d, dz=, z=)로 이루어져있다. 단어가 주어졌을때,..

[백준 5622] 다이얼

안녕하세요 . BlockDMask 입니다.170810 일자 문제 입니다. (170810 문제 빼먹음 -> 171003 완료) 0. 제목백준 5622 다이얼BOJ 5622 다이얼1. 문제 설명 전화를 걸고 싶은 번호가 있으면, 숫자를 하나 누르고 돌린다. 숫자 하나를 누른 상태에서 금 속 핀이 있는 곳 까지 시계 방향으로 돌려야 한다. 다른 숫자들을 누르려면 원래 위치로 돌아가기를 기다려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해서는 1초씩 더 걸린다. 입력은 문자열로 들어온다. 즉, 어떤 전화를 걸때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 단어가 주어졌을 ..

[백준 13458] 시험 감독

안녕하세요.// 오늘도 어김없이 문제를 풀고온 BlockDMask 입니다.곧 추석이네요 ㅎㅎ 추석때도 전을 먹으며 일일 일문제 하도록 노력해보겠습니다.0. 제목백준 13458 시험 감독BOJ 13458 시험 감독1. 문제 설명 총 N개의 시험장이 있고, 각각의 시험장 마다 응시자 들이 있습니다. i 번 시험장에 있는 응시자의 수는 Ai 명 입니다. 시험 감독관은 총감독관과 부감독관으로 두 종류가 있습니다. 총 감독관은 한 교실에서 감시 할 수 있는 응시자의 수가 B 명이고, 부감독관은 한 교실에서 감시할 수 있는 응시자의 수가 C 명 입니다. 각각의 시험장에 총감독관은 오직 1명만 있어야 한다. 부감독관은 여러명 있어도 상관없다. 각 시험장 마다 응시생들을 모두 감시해야 합니다. 이때 필요한 감독관 수의..

[백준 2292] 벌집

안녕하세요. BlockDMask 입니다.9월 25일자 문제 입니다.0.제목백준 2292 벌집BOJ 2292 벌집1. 문제 설명 [사진 출처]https://www.acmicpc.net/problem/2292 ACM-ICPC > Regionals > Asia > Korea > Nationwide Internet Competition > Asia Regional - Daejeon Nationalwide Internet Competition 2004 B번 위 그림과 같이 육각형으로 벌집이 이루어져 있습니다. 중앙 1번 방에서 부터 옆방 옆방으로 1씩 증가하면서 번호로 주소가 써져있습니다. (1 36번방이 N으로 들어오면 출력은 4 입니다. 2. 풀이 과정 방의 갯수를 잘보면 1개 - [1]6개 - [2~7]12..

선택 정렬 (Selection Sort) 이론과 코드

안녕하세요. BlockDMask 입니다. 오늘은 간단한 정렬 알고리즘 중에 선택 정렬(Selection Sort)에 대해서 알아 보도록 하겠습니다. 보시다가 이상하거나 궁금한 부분이 있으면 댓글 부탁드리겠습니다. 0. 원리오름 차순 기준일때 해당 하는 배열 안에서 가장 작은 값부터 찾아서 맨 앞부터 정렬 시키는 방법 입니다.그림으로 그려보겠습니다. 주어진 배열(리스트) 중에 최소값을 찾습니다. -> 그 최소값과 맨 앞의 값을 바꾸어 줍니다(swap) -> 바꿔서 fixed 된 값을 제외하고 나머지 배열(리스트) 중에 최소값을 찾습니다. -> 그 최소값과 나머지 배열중에 맨 앞의 값을 바꾸어 줍니다(swap) -> -> -> 쭉쭉쭉. 1. 코드 및 결과 > 코드(C++) 1234567891011121314..

[백준 1427] 소트인사이드

안녕하세요. BlockDMask 입니다.오늘 문제는 .. 음 쉬운 문제입니다.[C++ reference] 를 설명하기 위해서 찾아서 풀어본 문제입니다.0. 제목백준 1427 소트인사이드BOJ 1427 소트인사이드1. 문제 설명숫자 N 이 들어오면 내림차순으로 출력하라.N의 범위는 1,000,000,000 보다 작거나 같다.2. 풀이과정 a) 알고리즘 sort를 이용STL에서 지원해주는 sort 함수를 이용하여 푼 경우. b) 직접 bubble sort 구현 3. 코드 a) algorithm 헤더파일에서 지원해주는 sort 함수 이용.12345678910111213141516171819//백준 1427 번 소트인사이드 #include#include#includeusing namespace std; char..

[C++] 레퍼런스, Reference, 참조자

안녕하세요 BlockDMask 입니다. 오늘은 C++의 참조자(Reference)에 대해서 알아보도록 하겠습니다. 0. 레퍼런스(Reference)란? 참조자(Reference)는 변수에 "별명"을 붙인다고 합니다. 그 "별명"을 통해서 변수의 메모리 공간에 접근이 가능합니다. 참조자(Reference) 이름 앞에 "&" 를 붙여서 선언합니다. 참조자(Reference)는 변수에 대해서만 선언이 가능하고, 선언과 동시에 누군가를 참조 해야만 합니다. 참조자(Reference)는 참조의 대상을 바꾸는 것이 불가능 합니다. 참조자(Reference)는 NULL 로 초기화 하는것이 불가능 합니다. int type 변수 a 를 가리키는 int type의 참조자 ref를 선언해 보겠습니다. 123456789101..

[백준 1316] 그룹 단어 체커

안녕하세요. BlockDMask 입니다.9월 21일 목요일 문제 풀어보겠습니다. 0. 제목백준 1316 그룹 단어 체커BOJ 1316 그룹 단어 체커Group Word Checker1. 문제 설명 그룹 단어란 단어(문자열)에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우를 말합니다. "jjjkkqq" 는 j, k, q가 모두 연속해서 나타나므로 그룹 단어 입니다. "bear" 는 b, e, a, r 이 모두 연속해서 나타나므로 그룹 단어 입니다. "blockdmask" 는 b, l, o ,c k, d , m, a, s, k 에서 k 가 연속해서 나타나지 않으므로 그룹단어가 아닙니다. "kkkjjjjmmmj" 는 j 가 연속해서 나타나지 않으므로 그룹단어가 아닙니다. Testcase 가 ..

[백준 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

반응형