개발 노트237 [백준 5525/c++] IOIOI - 문자열 - 탐색 - 부분 점수 연산 시간을 줄여서 최소한의 연산으로 문자를 탐색하는 로직을 만드는 문제였다 조건에 부분 만족 시 부분 점수를 주는 서브 테스크 문제로서, 부분 점수 50점의 조건은 논리에 이상이 없는지, 100점은 일정 시간내에 풀 수 있는지 였다 find를 통해 이전 문자 탐색처럼 코드를 짜니 시간복잡도가 높아 부분점수를 받았고, ' I ' 이후에 오는 문자들이 IO라는 조건에 맞을 시 그 문자들이 n개 이상이 되어 원하는 문자의 길이를 충족하는지를 앞에서 부터 문자를 하나씩 옮겨가며 충족 시 IO의 문자 수 만큼인 2만큼 인덱스를 추가하여 계속 카운트 해나가는 방식으로 풀면 시간내에 풀 수 있는 문제였다 https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의.. 2022. 6. 24. [백준 1543/c++] 문자 검색 - 문자열 stirng 의 내장 멤버함수인 find를 사용해서 해당 중복 인덱스를 찾고, 그 새 인덱스로 검색 시작 인덱스를 갱신하며 카운트 하는 문제였다 생각보다 쉽게 풀이가 가능했다 #include using namespace std; int main(){ string s; string t; int cnt=0; int nbe=0; getline(cin, s); getline(cin, t); while(s.find(t, nbe)!=string::npos){ nbe=s.find(t, nbe) + t.length(); cnt++; } cout 2022. 6. 24. [백준 1316/c++] 그룹 단어 체커 - 문자열 연속되는 문자가 아니라면 이전에 나온적이 있던 문자인지 확인한다 연속되지 않는 문자가 이전에 나온적 있는 문자라면, 그 단어는 그룹단어가 아니다 이를 확인하기 위해서 문자들이 나올때마다 그 문자에 해당하는 배열에 0으로 초기화 후 하나씩 카운트를 하여 "그 배열의 매칭되는 문자의 값이 0이 아니며, 앞의 문자와 같으면 확인 안하므로 다를때만 확인해야 하므로 앞과 다른지 여부 확인, 앞에 비교할 문자가 있어야 하므로 2번째 문자부터 확인해야 해야 되는" 조건에 부합한다면 그 문자는 나온적이 있는 문자이므로, 그룹단어가 아니라고 체크 그룹단어가 아니라고 체크가 안된 단어들의 수를 세어 답을 구한다 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어.. 2022. 6. 24. [백준 1004/c++] 어린 왕자 - 구현 어린왕자가 행성을 몇개를 통과하는지 세는 문제다 피타고라스 정리의 의해 반지름 r^2= x^2+y^2 이므로 r^2보다 위치의 제곱을 더한 값이 작다면 그 원 안에 있으므로 카운트를 해주면 된다. 단, 시작점과 끝점이 모두 같은 원 안에 있을 수 있으므로, 둘 다 반지름보다 안에 있지 않다면 이라는 조건을 추가해주어 예외를 처리해야한다 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net #include using namespace s.. 2022. 6. 24. 이전 1 ··· 38 39 40 41 42 43 44 ··· 60 다음