#INFO 난이도 : SILVER4 알고리즘 유형 : STACK 출처 : 3986번: 좋은 단어 (acmicpc.net) 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net #SOLVE 스택 자료구조를 이용하면 간단하게 풀이 가능한 문제이다. 스택에 문자를 순차적으로 PUSH 하면서 겹치는 알파벳이 있으면 스택에서 POP 하면 된다. ABBA 같은 '좋은 단어'는 스택이 모두 비어질 것이고, ABAB 같은 '나쁜 단어'는 스택에 문자가 남아 있을 것이다. #CODE #include #include #include using..
* 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. * 다음 포스팅은 총 3편으로 나누어 정리할 예정입니다. VOL1 함수 포인터 (Function Pointer) 개요 #1 함수 포인터란? #2 함수 포인터 사용법 #1 함수 포인터란? 포인터 문법을 이용하면 변수의 주소를 저장할 수 있습니다. 예를들어 아래와 같이 코드를 작성하면 int형 변수 val의 주소가 ptr에 저장됩니다. int val = 10; int *ptr = &val; cout
*개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. #1 Return By Value #2 Return By Address / Reference #1 Return By Value getValue 함수는 값(Value)을 반환하는 간단한 Return-By-Value 함수입니다. Return-By-Value 함수는 복사 과정이 많이 일어나서 비효율적이라는 단점이 있습니다. 물론 아래 코드처럼 간단한 케이스는 상관 없지만 배열이나 구조체 등 데이터가 많은 자료형을 반환할 때는 문제가 발생할 수 있습니다. #include using namespace std; // return by value int getValue(int x) { int value = x * 2;..
#INFO 난이도 : SILVER5 알고리즘 유형 : BruteForce 출처 : 1018번: 체스판 다시 칠하기 (acmicpc.net) 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net #SOLVE 모든 경우의 수를 대입하는 브루트포스 알고리즘을 이용해 문제를 풀이하였습니다. 우선, 맨 앞이 검정으로 시작하는 8 x 8 타일 black_board와 하얀색으로 시작하는 8 x 8 타일 white_board 를 string 배열을 이용해 선언해 줍니다. string black_board[8] = { "B..
*개인적인 공부내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. const 키워드는 변수의 값이 변경되지 않기를 원하는 경우 변수를 상수화 시키는 용도로 사용하곤 합니다. int a = 10; const int a = 10; // 상수화 const는 변수 뿐 만 아니라 포인터 혹은 참조자(&)에도 사용이 가능합니다. 이번 포스팅에서는 const를 참조자(&)에 사용한 예시와 const와 참조자를 함께 사용 시 얻을 수 있는 이점에 대해 정리해 보도록 하겠습니다. 참조자에 100과 같은 값(리터럴)을 대입하려고 하면 에러가 발생합니다. 그 이유는 어찌보면 당연한데 참조자는 변수의 메모리 주소를 저장하는 문법인데 리터럴 값을 대입하려고 하니 오류가 발생하는 것 입니다. in..