-
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%201316
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 문자가 주어졌을 때 특정 조건을 만족하는 문자 수를 출력하는 문제다.
예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.
즉 이미 사용한 문자가 연속이 아닌 띄어져서 나온 경우 해당 문자열은 조건을 실패하는 경우다.
해당 문제는 처음에 문제를 보고 배열을 하나 둬서 문자 사용 여부 체크하는 것과, 배열 하나에는 문자를 다 넣어서
하나씩 빼와서 사용해야겠다 생각하고 계획하던 중 배열에 문자를 넣을 필요 없이 문자를 입력받고바로 해당 문제를 조건에 맞는지 체크하는 방식으로 계획을 변경하여 진행하였으며,실패하는 경우 bool형의 변수를 ture로 바꿔서 최종 출력 값인 ans가 증가 안 하도록 하여문제를 해결했다.
문자가 입력되면 한 칸씩 비교를 하는데 이전 값과 같지 않고 만약 문자 사용 여부에서 사용이 됐으면 실패하는경우기 때문에 bool 형 변수를 ture로 변경하과 for문을 멈춰주며, 그렇지 않은 경우에 대해 선 이전 값에현재 값을 넣어주고 현재 값에 대한 방문 체크를 해준다.
오늘부터는 실버 5-> 실버 1 순으로 문제를 풀면서 문제를 바로 코딩하기보단 종이에 계획을 세워서체크를 한 뒤 풀어보려고 한다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 2638 치즈 JAVA (0) 2021.12.04 Baekjoon 2609 최대공약수와 최소공배수 JAVA (0) 2021.12.04 Baekjoon 11659 구간 합 구하기 4 JAVA (0) 2021.11.30 Baekjoon 13549 숨바꼭질 3 JAVA (0) 2021.11.30 Baekjoon 1406 에디터 JAVA (0) 2021.11.28 댓글