[백준/c++] 2621번: 카드게임
·
알고리즘/백준
https://www.acmicpc.net/problem/2621 2621번: 카드게임 근우는 오늘 재미있는 카드 게임을 배우고 있다. 카드는 빨간색, 파란색, 노란색, 녹색의 네 가지 색이 있고, 색깔별로 1부터 9까지 숫자가 쓰여진 카드가 9장씩 있다. 카드는 모두 36(=4x9)장이다. www.acmicpc.net 규칙을 따라서 차례대로 구현하면 되는 문제 사실 좀 더 멋지게... 구현할 수 있을 거 같은데 괜히 꼬일 거 같아서 쭉... 규칙을 차례대로 구현해줬다. 두 가지 이상의 규칙을 적용할 수 있는 경우가 있는데 (4장의 숫자의 값이 같은데 모두 같은 색이라면? 같은 경우) 이런 경우 적용되는 규칙 중 가장 높은 점수가 나오는 걸 적용하면 된다. 그래서 우선순위를 정리해보려고 했는데 그냥 규칙..
[백준/c++] 1652번: 누울 자리를 찾아라
·
알고리즘/백준
https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 분명 쉬운 문제인데 반례 혹은 숨겨진 조건을 찾는 게 너무너무 ㄹ어렵다.... 흑흑... 이거 하나때문에 시간을 얼마나 쓰는 건지 열받아 죽을 거 같다 가로 세로 따로 구하면 되는데, 이게 진짜 열받는 게 뭐냐면 예제에서는 보이지 않는 조건들이 날 괴롭힌다.. 하지만.. 열심히 혼자 잘 찾아야 한다. 아직까진 질문 검색 카테고리에서 도움을 받고 있는데 언제까지고 할 수 없는 노릇이라.. ..
[백준/c++] 16439번: 치킨치킨치킨
·
알고리즘/백준
https://www.acmicpc.net/problem/16439 16439번: 치킨치킨치킨 첫 번째 줄에 고리 회원의 수 N (1 ≤ N ≤ 30) 과 치킨 종류의 수 M (3 ≤ M ≤ 30) 이 주어집니다. 두 번째 줄부터 N개의 줄에 각 회원의 치킨 선호도가 주어집니다. i+1번째 줄에는 i번째 회원의 선 www.acmicpc.net 순서대로 정리를 해보자면 1. 치킨 3개 고르기 (backtracking) : vector에 치킨 종류 넣기 2. N명의 만족도 구하기 : 시킨 치킨 3개 중 각 회원의 선호도가 가장 큰 값 3. N개의 만족도를 sum에 누적 합산시키면 answer #include #include #include using namespace std; int n, m, arr[31]..
[백준/c++] 17609번: 회문
·
알고리즘/백준
https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 골머리 앓았던 문제.. 모든 조건을 챙기려다 보니까 끝이 없었다... 그래서 다시 생각해보고 앞 혹은 뒷 문자를 정말 지우는 방법을 써봤다. string에는 erase라는 함수가 있는데 이를 사용했다. 이 문제는 두 포인터를 사용하면 되는데, 앞 뒤 인덱스를 가리키는 l, r 포인터를 만들고 해당 문자들이 동일한지 체크하면 된다. 팰린드롬인지 아닌지 확인하는 checkP함수 (동일하지 않다면 바로 false 반환, 같으면 l+..
[백준/c++] 17413번: 단어 뒤집기 2
·
알고리즘/백준
https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 주어진 조건만 맞추면 되는 문제인데, 반례들을 생각하면서 조건을 챙기면서 구현해줘야 한다. 안의 문자열은 그대로 출력되어야 하므로 가 나오면 flag 변수를 풀어주었다. 문자라면 tmp 문자열에 추가 빈칸이면 tmp 문자열 swap, tmp 문자열에 공백 추가 이렇게 하고, 더 생각해보자면 문자 뒤에 빈칸이 아니라 뒤에
[백준/c++] 16171번: 나는 친구가 적다(Small)
·
알고리즘/백준
https://www.acmicpc.net/problem/16171 16171번: 나는 친구가 적다 (Small) 첫 번째 줄에는 알파벳 소문자, 대문자, 숫자로 이루어진 문자열 S가 주어진다. (1 ≤ |S| ≤ 100) 두 번째 줄에는 성민이가 찾고자 하는 알파벳 소문자, 대문자로만 이루어진 키워드 문자열 K가 주 www.acmicpc.net std::string find함수를 사용하면 문자열에서 특정 문자열을 찾을 수 있다. find함수는 찾고 싶은 문자열의 시작 위치를 반환한다. (size_t형) 찾고자 하는 문자열이 있는지 확인하려면 아래와 같이 하면 된다. std::string text = "hello world!"; size_t nPos = text.find("world!"); if(nPos..
[백준/c++] 4659번: 비밀번호 발음하기
·
알고리즘/백준
https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 조건 3가지를 충족시키면 되는데 모음과 자음을 나눠서 하면 편하다. #include #include #include using namespace std; bool isVowel(char c){ if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') return true; return false; } int main(){ ios::sync_..
[백준/c++] 1181번: 단어 정렬
·
알고리즘/백준
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 중복이 없어야 한다는 것을 유의해야 한다. 배열을 sort 함수를 통해서 정렬을 하되, 길이가 짧은 것부터 (같으면 사전 순)를 따르는 comp 함수를 따로 만들어주고 last 변수를 통해 정렬된 문자열중 만약 앞에서 같은 문자열이 나왔다면 그냥 넘어가도록 했다. #include #include #include using namespace std; bool comp(string a, s..
[백준/c++] 20154번: 이 구역의 승자는 누구야?
·
카테고리 없음
https://www.acmicpc.net/problem/20154 20154번: 이 구역의 승자는 누구야?! 첫째 줄에 알파벳 대문자로만 이루어진 길이 K(1 ≤ K ≤ 1,000,000)인 문자열 S가 주어진다. www.acmicpc.net 다른 사람 코드를 보니 좀 더 단순하게 풀었더라.. 대단하네,, 나는 그냥 주어진 대로 했는데,,, 흑흑 생각해보니 진짜 굳이 2개씩 더할 필요가 없었다..ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 앞에서부터 cnt를 누적하면서 10을 넘어섰는지 체크만 해주면 되는... 다음부턴 더 생각하고 하기..^^ [원래 코드] #include #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0);..
녕이
'BOJ' 태그의 글 목록 (13 Page)