🏃‍♀️ 코테 연습 12

[C++] 문자열 문법 정리

제출한 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; string s; cin >> n; cin >> s; int sum = 0; for(int i=0; i s; for(int i=0; i value; vec.push_back(value);// 벡터의 맨 마지막 원소 뒤에 원소 추가 } 사실 vector 클래스를 사용하면 vector 자체가 가변적이라서 N을 넘겨줄 필요가 없다 방법 1) #include using namespace std; void func(); int main(int argc, const char *argv[]) { int C; cin..

[C++] 백준 10951번

이번 문제는 몇 개를 입력 받는지 알 수 없다 다음과 같이 풀었고 출력 초과가 떴다 내가 푼 틀린 코드 ⬇️ #include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); int a, b; while (true) { cin >> a >> b; cout a >> b).eof()) {} 위와 같이 작성해야 한다 eof() 는 "읽기 시도를 한 후" 에 eof 검사를 한다 그래서 (cin >> a >> b).eof() 방식으로 괄호 안의 cin >> a >> b 를 통해 읽은 후 eof 상태인지 검사한다 방법 2-2. cin eof() 쓰는 방식이 아닌 더욱 간단한 방식도 있다 while(cin >> a >> b) {}..

[C++] 백준 15552번

아래는 백준의 설명 글이다 https://www.acmicpc.net/board/view/22716 글 읽기 - 추가 설명 및 다른 언어 빠른 입출력 방법 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net 아래 얘기는 cin, cout을 쓸 때의 얘기지, scanf/prinf로 입출력을 하고자 하신다면 그냥 쓰시면 됩니다. scanf/printf는 충분히 빠릅니다. endl은 개행문자를 출력할 뿐만 아니라 출력 버퍼를 비우는 역할까지 합니다. 그래서 출력한 뒤 화면에 바로 보이게 할 수 있는데, 그 버퍼를 비우는 작업이 매우 느립니다. 게다가 온라인 저지에서는 화면에 바로 보여지는 것은 중요하지 않고 무엇이 출력되는가가 중요하기 때문에 버퍼를 그렇게 자주 비울 필요가 없습니다. 그래서 e..

27. N!의 표현법

이 문제의 저작권은 인프런 강의 "it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비" 에 있습니다. 문제 25 임의의 N에 대하여 N!은 1부터 N까지의 곱을 의미한다. 이는 N이 커짐에 따라 급격하게 커진 다. 이러한 큰 수를 표현하는 방법으로 소수들의 곱으로 표현하는 방법이 있다. 먼저 소수는 2, 3, 5, 7, 11, 13... 순으로 증가함을 알아야 한다. 예를 들면 825는 (0 1 2 0 1)로 표현이 가능한데, 이는 2는 없고 3은 1번, 5는 2번, 7은 없고, 11은 1번의 곱이라는 의미이다. 101보 다 작은 임의의 N에 대하여 N 팩토리얼을 이와 같은 표기법으로 변환하는 프로그램을 작성해 보자. 출력은 아래 예제와 같이 하도록 한다. 입력설명 첫 줄에 자..

26. 말아톤

이 문제의 저작권은 인프런 강의 "it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비" 에 있습니다. 문제 25 KSEA 장거리 달리기 대회가 진행되어 모든 선수가 반환점을 넘었다. 각 선수의 입장에서 자 기보다 앞에 달리고 있는 선수들 중 평소 실력이 자기보다 좋은 선수를 남은 거리 동안 앞지 르는 것은 불가능하다. 반대로, 평소 실력이 자기보다 좋지 않은 선수가 앞에 달리고 있으면 남은 거리 동안 앞지르는 것이 가능하다. 이러한 가정 하에서 각 선수는 자신이 앞으로 얻을 수 있는 최선의 등수를 알 수 있다. 각 선수의 평소 실력은 정수로 주어지는데 더 큰 값이 더 좋은 실력을 의미한다. 현재 달리고 있는 선수를 앞에서 부터 표시했을 때 평소 실력이 각각 2, 8, 10, 7..

스터디 1일차

1강 sorting의 종류 - heap sort, quick sort, merse sort stable한 알고리즘은 merge sort이 있고, unstable한 알고리즘은 quick sort, heap sort가 있다. (퀵힙은 불안정) ABC 로 테이블이 있을 때, 정렬한 후에도 ABC 이 순서로 유지된다면 stable 알고리즘이다. (잘못 이해했음. 아래에 부가 설명 참고!) search는 배열을 전부 다 돌아야 하기 때문에 O(n) 정도로 걸린다 binary search -> O(logn) 2차원 다차원 array.. 먼저 정렬 알고리즘이란 컴퓨터 과학과 수학에서 정렬 알고리즘(sorting algorithm)이란 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘이다. (출처..

24. Jolly Jumpers

이 문제의 저작권은 인프런 강의 "it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비" 에 있습니다. 문제 24 N개의 정수로 이루어진 수열에 대해 서로 인접해 있는 두 수의 차가 1에서 N-1까지의 값을 모두 가지면 그 수열을 유쾌한 점퍼(jolly jumper)라고 부른다. 예를 들어 다음과 같은 수열에 서 1 4 2 3 앞 뒤에 있는 숫자 차의 절대 값이 각각 3 ,2, 1이므로 이 수열은 유쾌한 점퍼가 된다. 어떤 수열이 유쾌한 점퍼인지 판단할 수 있는 프로그램을 작성하라. 입력예제 5 1 4 2 3 7 출력예제 YES 내가 쓴 코드 #include using namespace std; int cnt[100000]; int main(){ //freopen("input.t..

23. 연속 부분 증가수열

이 문제의 저작권은 인프런 강의 "it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비" 에 있습니다. 문제 23 N개의 숫자가 나열된 수열이 주어집니다. 이 수열 중 연속적으로 증가하는 부분 수열을 최대 길이를 구하여 출력하는 프로그램을 작성하세요. 만약 N=9이고 5 7 3 3 12 12 13 10 11 이면 “3 3 12 12 13” 부분이 최대 길이 증가수열이므로 그 길이인 5을 출력합니다. 값이 같을 때는 증가하는 걸로 생각합니다. 입력예제 9 5 7 3 3 12 12 13 10 11 출력예제 5 먼저 pre, now 변수를 활용해서 코드를 짜보자. pre는 이전 값을, now는 현재 값을 의미한다고 정의한다. 5 7 3 3 12 12 13 10 11 에서 5는 pre를..

22. 온도의 최댓값 (1차원 배열 구간합 : 제한시간 1초)

이 문제의 저작권은 인프런 강의 "it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비" 에 있습니다. 문제 22 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 다음과 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 다음과 같다. (그림 생략) 이때, 온도의 합이 가장 큰 값은 21이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오. 입력예제 >> 10 2 3 -2 -4 -9 0 3 7 13 8 -3 출력예제 >> 21 *..