코테용 문제풀이/백준

    분수찾기 풀이

    문제 링크: https://www.acmicpc.net/problem/1193 백준 기본 수학 1 3단계 - 1193번 분수찾기를 풀어보았다. 풀이: 분자 혹은 분모의 최댓값과 한 대각선에 있는 분수 번수의 최댓값을 알아야 한다. 예를 들어, 8번째 분수인 2/3은 1/4->2/3->3/2->4/1 대각선에 위치해 있고, 이 대각선에서의 분자 혹은 분모의 최댓값은 4이고, 분수 번수의 최댓값은 10이다. 그래서 구하고자 하는 x번째 분수가 어느 대각선에 위치해 있는지를 알아내고, 그 대각선이 어느 순서대로 번수가 증가하는지를 파악해 x를 알아내면 된다. C++ #include using namespace std; int main() { int x; // 입력 cin>>x; int count=0; // 지..

    벌집 풀이

    문제 링크: https://www.acmicpc.net/problem/2292 백준 기본 수학 1 2단계 - 2292번 벌집을 풀어보았다. 풀이: i번만큼의 이동으로 최대 몇 번까지 갈 수 있는지를 구한다. C++ #include using namespace std; int main() { int n; cin >> n; int result=0; int round=0; int maxroom=1; while(1) { maxroom += 6*round; if(maxroom>=n) { result=round+1; break; } round++; } cout room: i+=1 room+=(6*(i-1)) print(i) Java

    손익분기점 풀이

    문제 링크: https://www.acmicpc.net/problem/1712 백준 기본 수학 1 1단계 - 1712번 손익분기점을 풀어보았다. 풀이: 고정비용/(판매비용-가변비용)을 한 후 1을 더하면 손익분기점이 된다. C++ #include using namespace std; int main() { int nums[3]; for(int i=0;i> nums[i]; if(nums[1]>=nums[2]) cout

    그룹 단어 체커 풀이

    문제 링크: https://www.acmicpc.net/problem/1316 백준 문자열 10단계 - 1316번 그룹 단어 체커를 풀어보았다. 풀이: 글자를 비교해 그룹 단어를 판단한다. C++ #include using namespace std; int main() { int cnt; cin>>cnt; int res=0; for(int i=0;i>inp; bool alpha[26]={false}; bool check=true; for(int j=0;j

    크로아티아 알파벳 풀이

    문제 링크: https://www.acmicpc.net/problem/2941 백준 문자열 9단계 - 2941번 크로아티아 알파벳를 풀어보았다. 풀이: 크로아티아 알파벳을 다른 문자로 치환하고 개수를 센다. C++ #include #include using namespace std; int main() { string croatian[8] = {"c=","c-","dz=","d-","lj","nj","s=","z="}; int idx; string inp; cin >> inp; for(int i = 0; i < 8; i++) { while(1) { idx = inp.find(croatian[i]); if(idx == string::npos) break; inp.replace(idx,croatian[i]...

    다이얼 풀이

    문제 링크: https://www.acmicpc.net/problem/5622 백준 문자열 8단계 - 5622번 다이얼을 풀어보았다. 풀이: 알파벳마다 숫자를 배정해 풀면 된다. C++은 아스키 코드 값을 이용했다. 파이썬은 딕셔너리를 이용했다. C++ #include using namespace std; int main() { int alpha[]={3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10}; string inp; cin>>inp; int time=0; for(int i=0;i

    상수 풀이

    문제 링크: https://www.acmicpc.net/problem/2908 백준 문자열 7단계 - 2908번 상수를 풀어보았다. 풀이: 숫자를 거꾸로 읽고 그 값을 비교한다. C++ #include using namespace std; int main() { int a, b; cin >> a>> b; int na=(a%10)*100+((a/10)%10)*10+a/100; int nb=(b%10)*100+((b/10)%10)*10+b/100; if(na>nb) cout

    단어의 개수 풀이

    문제 링크: https://www.acmicpc.net/problem/1152 백준 문자열 6단계 - 1152번 단어의 개수를 풀어보았다. 풀이: 문자열 한 줄을 입력받고 공백으로 띄어진 단어의 수를 센다. C++ #include #include using namespace std; int main() { string inp; getline(cin,inp); int cnt = 1; if(inp.empty()) cout

    단어 공부 풀이

    문제 링크: https://www.acmicpc.net/problem/1157 백준 문자열 5단계 - 1157번 단어 공부를 풀어보았다. 풀이: 대문자와 소문자를 통일하고 그 후에 개수를 세야 한다. C++에서는 transform을 써서 전부 대문자로 바꾸었다. 파이썬의 경우, set을 이용해 중복을 제거 후 글자 개수를 배열로 만들어 처리했다. C++ #include #include #include using namespace std; int main() { string s; cin>>s; int max=-1; int cnt=0; int alpha[26]={0,}; int c; transform(s.begin(),s.end(),s.begin(),(int(*)(int))toupper); // 대문자로 변..

    문자열 반복 풀이

    문제 링크: https://www.acmicpc.net/problem/2675 백준 문자열 4단계 - 2675번 문자열 반복을 풀어보았다. 풀이: 문자열에 있는 모든 문자에 대해 반복을 해주면 된다. C++ #include #include using namespace std; int main() { int t; cin>>t; for(int i=0;i>r; cin>>s; for(char c:s) // s에 있는 모든 문자에 대해 { for(int j=0;j