본문 바로가기

코딩테스트22

[백준 1316/c++] 그룹 단어 체커 - 문자열 연속되는 문자가 아니라면 이전에 나온적이 있던 문자인지 확인한다 연속되지 않는 문자가 이전에 나온적 있는 문자라면, 그 단어는 그룹단어가 아니다 이를 확인하기 위해서 문자들이 나올때마다 그 문자에 해당하는 배열에 0으로 초기화 후 하나씩 카운트를 하여 "그 배열의 매칭되는 문자의 값이 0이 아니며, 앞의 문자와 같으면 확인 안하므로 다를때만 확인해야 하므로 앞과 다른지 여부 확인, 앞에 비교할 문자가 있어야 하므로 2번째 문자부터 확인해야 해야 되는" 조건에 부합한다면 그 문자는 나온적이 있는 문자이므로, 그룹단어가 아니라고 체크 그룹단어가 아니라고 체크가 안된 단어들의 수를 세어 답을 구한다 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어.. 2022. 6. 24.
[백준 1541/c++] 잃어버린 괄호 문제를 이해하지 못하고 조건을 설정해서 괄호문자를 넣으려 했다가 실패했다 생각보다 조건이 까다로웠기 때문이다. 하지만 내가 직접 괄호를 넣어서 새 문자열을 만들라는 말이 아니라 결과만 최소가 되도록 괄호를 사용한 "것처럼" 만들면 되는 것이었다 그렇다면 어떤 결과가 최소가 되는 결과일까? 첫 -가 나온 후로 +는 괄호로 묶어서 모두 -로 뺄셈 처리가 되도록 하면 된다 하나씩 문자를 세며 기호가 나왔다면 ' -' 가 처음 나오기 전의 수였다면 결과에 양수로 그대로 더해주고 첫 ' - ' 이후에 나온 +나 - 등의 모든 기호는 앞의 수여도 이미 그 수 전에 -가 있으므로 결과에 -처리를 시킨다 마지막 요소로 쓸 숫자를 세기 위해서 숫자의 끝에도 기호로 세서 판단할 것이 있어야 하는데 string 의 끝에는 .. 2022. 6. 24.
[백준 9012/c++] 괄호 - 문자열 - 스택 스택 문제는 전에 풀어본 적이 있어서 아주 쉽게 풀었다 다른 문제도 이렇게만 풀렸으면... #include using namespace std; int main(){ int n; cin >> n; for(int i=0; i> s; for(auto k : s){ if((stk.size()!=0) && (stk.top()=='(') && k==')'){ stk.pop(); } else{ stk.push(k); } } if(stk.size()!=0){ cout 2022. 6. 23.
[백준 4673/c++] 셀프 넘버 문제 자체는 아주 간단하다 하지만!!! 왜인지 모르겠는데 주석부분의 i를 통해 구하려고 할 때 답이 달라지고 멈추고 난리라서 왜 그런지 이해하려고 하다가 결국 코드를 다른 방법으로 써서 통과한 문제이다 다른 분들의 풀이를 보면 함수로 빼서 하시던데 굳이 그럴 필요는 못느낀 문제였다 근데 왜 저게 안되는거야 아오... #include using namespace std; int main(){ bool t[10004]; for(int i=1; i 2022. 6. 23.