728x90
반응형

CPP 175

백준, BOJ, 1541번 C++ [CPP]

문자열을 입력받아서 처리하는 것이다. 시간도 널널하다. https://www.acmicpc.net/problem/1541 #맞는 풀이 #include #include using namespace std; string s = ""; bool check = false; int main() { cin >> s; string temp = ""; // 연산을 할 문자열. int sum = 0; bool check = false; //-출현체크 bool init = false; for (char c : s) { if (c == '+') { int a = stoi(temp); if (check) { sum -= a; } else { sum += a; } temp.clear(); } else if (c == '-') ..

백준, BOJ, 1904번 C++ [CPP]

DP문제다. 하지만 역시 문제를 생각하는데 오래걸렸다. 20분쯤 걸린듯..ㅠ 시간제한보면.. 무조건 DP란 것이 느껴진다. https://www.acmicpc.net/problem/1904 #맞는 풀이 #include #define X 15746 using namespace std; long long dp[1000001]; int N; int main(){ cin >> N; // 맨 끝의 타일이 00으로 끝나느냐 1로 끝나느냐의 차이를 생각해보자 dp[1] = 1; dp[2] = 2; //숫자가 너무 커지기 때문에.. 답이 제대로 나오지 않음 for(int i = 3; i

백준, BOJ, 14889번 C++ [CPP]

그렇게 어렵진 않은 백트래킹 문제였다. 역시나 초기화 하지 않아서 틀린...아주 기초적인 문제다. 시간도 아주 여유로운 문제였다. https://www.acmicpc.net/problem/14889 #맞는 풀이 #include #include #include // 절댓값 using namespace std; int N; int num[21][21]; // 최대 20명의 상대점수를 넣어놓음. (1~20만 씀 0 안씀) int m = 10000; //최솟값 (임의로 크게 잡아놓음) bool check[21]; // 팀원으로 뽑혔는지 확인해야함 (1~20만 쓸거임 0 안씀) vector target; // 뽑은팀 (숫자) void func(int cnt) { //절반을 뽑았을 때 //10몀 뽑은 팀과 남은 팀..

백준, BOJ, 2580번 C++ [CPP]

이 문제는 맞게 풀더라도 시간초과가 나는 문제다.. 내가 시간초과가 어디서 났는지 잘보도록하자. https://www.acmicpc.net/problem/2580 #1 시간초과 케이스 #include #include using namespace std; int pane[9][9]; // 9*9 게임판 bool check = false; // 답을 찾았는지 체크 vector vec; // 채워야 할 곳의 좌표 int number = 0; // 채워야 할 곳의 개수 //조건 1.가로의 합 45, 2.세로의 합 45, 3.3*3 내의 합 45 를 이용해보자.(비효율적..) // -> 하나의 행에 숫자가 중복되면 안됨, 하나의 열에... 하나의 3*3안에... // 해당 위치의 값으로 조사 bool numChe..

백준, BOJ, 1181번 C++ [CPP]

쉬운 문제지만 sort에서 cmp를 이용하는 문제고 문자열을 이용해서 익혀볼만 하다. https://www.acmicpc.net/problem/1181 [문제풀이(Problem Solving)/C++ 문제풀이에 유용한 것들] - set처럼 vector에서도 중복된 것들 없애기, unique() 위 글이 도움이 될 것이다. #맞는 풀이 #include #include #include #include using namespace std; int N; vector vec; bool cmp(string s1, string s2){ //길이가 작은 것이면 앞으로 if(s1.length() < s2.length()){ return true; }else if(s1.length() == s2.length()){ // ..

백준, BOJ, 18870번 C++ [CPP]

어렵지 않았지만 방법이 조금 틀렸다. https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net find에 대한 오해가 생겨서 시간 초과가 났다. # 시간 초과 풀이 #include #include #include #include using namespace std; int N; vector vec; int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> N; ..

백준, BOJ, 1912번 C++ [CPP]

다이나믹 프로그래밍의 문제는 뭔가 자꾸 많이 시킨다. 그래서 이게 DP 문제구나라는 것은 감이 오지만 어떻게 적용해야할 지 감은 바로 안온다.. https://www.acmicpc.net/problem/1912 #맞는 풀이 #include #include using namespace std; int N; int num[100001]; int dp[100001]; int main() { cin >> N; for (int i = 1; i > num[i]; } int M = -1001; for (int i = 1; i = M) { M = dp[i]; } } cout

백준, BOJ, 2108번 C++ [CPP]

음 이제부터 무조건 float 절대 안 쓰고.. double 써야징 ㅎㅎ 물론 메모리는 더 먹지만.. float으로 오차가 생기는 것보단 훨씬 낫다. https://www.acmicpc.net/problem/2108 # 맞는 풀이 #include #include #include #include using namespace std; //산술 평균을 위해 필요한 값 - 원소의 개수, 원소의 합 //최빈값 "" - 해당 원소의 출현 횟수 //중앙값 - 해당 원소를 내림차순 또는 오름차순으로 정렬 -> but 항상 홀수의 개수를 가지므로 (원소 사이즈 + 1)/2 idx에 존재 //최대,최소 - 원소를 입력받으며 최소 최대값 갱신. //원소의 개수, 원소의 합을 위한 벡터 vector V; //최빈값 int n..

728x90
반응형