1. 문제https://www.acmicpc.net/problem/5212 2. 문제주의할 점 : 배열의 범위를 벗어나는 경우 바다(.)로 처리해야 한다.50년 후 지도 만들기lands 배열 : 50년 전의 지도newLands : 50년 후의 지도lands 배열을 탐색하면서 땅(X)으로 되어 있는 위치(x, y)를 찾는다.해당 좌표에서 인접한 상하좌우 좌표를 탐색하면서 주변에 바다(.)가 몇 곳이 있는지 개수(count)를 구한다. 단, 상하좌우 탐색 과정에서 배열의 범위를 벗어나는 경우 바다(.)이다.상하좌우 탐색을 마치고 땅 주변에 바다가 3곳 이상(count >= 3)이라면, 현재 위치(x, y)는 50년 후에 바다로 잠긴다. 이를 newLands[y][x]에 저장하면 된다.static void l..
https://www.acmicpc.net/problem/1213 해설counts 배열에 문자 개수 저장팰린드롬을 체크할 front, back, mid 생성StringBuilder를 사용한 이유는 index 지정해서 문자를 추가할 수 있기 때문이다.counts 배열을 순회현재 문자가 2개 이상 저장되어 있다면 front와 back에 저장한다.단, back에 저장할 때는 팰린드롬 처리를 해야하므로 0번 인덱스에 삽입한다.기존 : AB, 'C' 삽입 후 : CAB현재 문자가 1개라면 mid에 저장한다.1개의 의미는 팰린드롬을 만들기 위한 중간 문자임을 의미한다.mid 문자열 길이가 1 이상이면 팰린드롬이 될 수 없음mid에 맞춰서 출력을 다르게 한다.코드import java.io.*;import java.u..
https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 뭔가 2~3번 조건을 동시에 체크할 수 있을 것 같은데... 방법이 떠오르지 않는다. #include using namespace std; bool isVowel(char c) { if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') return true; return false; } // 1번 조건 bool isContainsVowe..
https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 처음에 문제를 잘못 이해한 상태로 코드를 제출하니 바로 틀렸다. 문제를 잘못 이해하고 접근하기 쉽다. ..X.. : 누울 자리 2자리 X를 만나기 전 .. X를 만난 후 .. ................X.. : 누울 자리 2자리 X를 만나기 전 ................ X를 만난 후 .. 위와 같은 방식으로 접근하면 된다. #include using namespace std; i..
https://www.acmicpc.net/problem/10973 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net #include using namespace std; int main() { int n; cin >> n; vector v; for (int i = 0; i > num; v.push_back(num); } if(prev_permutation(v.begin(), v.end())) { for (int i = 0; i < n; i++) cout