알고리즘/BOJ
[c/c++] BOJ 11328번 문제 - strfry
wonjun.Aden
2022. 2. 21. 21:30
https://www.acmicpc.net/problem/11328
13300번: 방 배정
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어
www.acmicpc.net
문제

문제 풀이
#include <bits/stdc++.h>
using namespace std;
//Strfry
//문자열 -> 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐
//Strfry -> 입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어냄.
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
//테스트 케이스의 수
int n;
string s1;
string s2;
bool ans;
cin >> n;
for(int i=0;i<n;i++){
//테스트 케이스의 수마다 초기화 필요!
ans=true;
int arr1[26]= {0,};
int arr2[26]= {0,};
cin >> s1 >> s2;
if(s1.size()!=s2.size()){
ans=false;
}else{
for(char c : s1){
arr1[c-'a']++;
}
for(char c : s2){
arr2[c-'a']++;
}
for(char c : s2){
if(arr2[c-'a']!=arr1[c-'a']){
ans=false;
break;
}
}
}
if(ans){
cout << "Possible" << '\n';
}
else{
cout << "Impossible"<< '\n';
}
}
}
문제의 포인트
- 테스트 케이스의 수마다 답에대한 초기화가 필요합니다.
- 문자열을 배열에서 표현해야하기 때문에 소문자a는 아스키코드로 97이고 a를 빼줌으로서 0부터 26까지의 배열을 생성합니다.
반응형