본문 바로가기

string14

[백준 1181/c++] 단어 정렬 중복을 허락하지 않고 커스텀 조건으로 정렬 - 아하 set을 쓰면 되겠군! set을 사용한 커스텀 정렬은 처음 써보았다 set의 템플릿에 맞게 struct 의 내부를 원하는 조건으로 커스텀해준뒤 입력을 받아 set에 넣으면 원하는 조건으로 정렬이 된다. 그대로 출력하면 완성이다! https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net #include using namespace std; struct tok { bool operator() (.. 2022. 7. 1.
[백준 10610/c++] 30 자료형의 표현 범위를 넘어선 거대한 수를 다룰때 string 을 써서 다뤄야 하는 법을 알려주는 문제였다 10^15 개의 자리수를 갖는 숫자라니 long long 으로도 표현불가하다. c++ 에서는 string 으로 다루자! 처음에 풀때는 각 자리의 조합을 바꿔서 3으로 나눌 수 있는 것들을 찾았지만 시간초과가 걸렸고 다음 방법으로 0을 제외한 2자리 3자리(2자리가 에러가 떠서...)가 3으로 나누어 떨어지는 경우의 수에서의 최대값을 구하려 했었지만... 출력 오류가 떠서 다시 처음부터 로직을 생각해야만 했다 모든 자리수의 합이 3으로 나누어지는 경우가 조건이었다;;; 자고일어나서 생각하니 이렇게 간단하게 풀릴줄이야... https://www.acmicpc.net/problem/10610 10610번:.. 2022. 7. 1.
배열과 문자열의 인덱스를 비교 시 빈 string을 사용하자 string s = "tokki"; string a[3] = { "a", "b", "t" }; 같은 데이터가 주어질 시, 문자열을 for문에서 인덱스로 s[i] 돌면서 a[i]와 비교한다고 할 시, 오류가 뜬다 s[i]의 경우 char, a[i]의 경우 string 타입으로 서로 다르기 때문인데 이를 해결하기 위해서 string tok=""; 이렇게 빈 string 문자열 하나를 만들고 tok=s[i]; 를 하여 문자를 빈 문자열에 붙여 string 으로 만들어서 비교해주면 된다! 여기서 헤메느라 오늘 코딩테스트때 망했다... 2022. 6. 27.
[백준 1157/c++] 단어 공부 - 문자열 간단한 문자열 문제다 더 효율적인 로직도 중요하지만 더 더 더 빨리 풀도록 하자 시간내에 못풀면 쉬워도 틀린문제니까 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net #include using namespace std; int main(){ string s; int a[150]={0}; int max=0; int cnt=0; char ans='*'; cin >> s; for(int i=0; i='a' && s[i] 2022. 6. 24.