메뉴 건너뛰기

BLENDING

자유 게시판

이 문제좀 봐요 ㅋ

01오치문2012.04.09 14:21조회 수 13527댓글 38

    • 글자 크기

출처: http://www.algospot.com/judge/problem/read/ANAGRAM


문제

Algospot Inc. is planning to launch a new product iWook on September 2011. iWook, is a diskless desktop computer and will be used by geek CS major students around the world. To classify each device, a unique serial number is assigned.

Wookayin, the tech lead of iWook, decided that the password for a iWook device must use all letters from the device’s serial number exactly once in a case-sensitive way, and not in the same order (Obviously, in the real world, it’s a faily bad security practice to enforce such restrictions to passwords.)

Algospot Inc. just hired you to write a program to verify passwords entered by users. For a successful launch, develop the perfect verifier ASAP!

입력

The input consists of T test cases. The number of test cases T is given in the first line of the input.

The following T lines will each contain two strings, the first of which being the serial number of the device, and the second being a password entered by a user for the device.

Both strings will only contain alphanumeric characters, and will not exceed 100 characters in length.

출력

For each test case, print a single line. If the given password is valid for the device, print “Yes” (quotes are for clarity). Otherwise, print “No.”.

예제 입력

2
weird wired
apple angle

예제 출력

Yes
No.


요약하면 앞에 입력된 문자들을 한 번씩만 이용해서 비밀번호(뒷 문장)를 만들어야 한다는겁니다. 그러니까.. 문자들을 재배치 하는거죠.

처음에 좀 복잡하게 생각했는데 간단한 방법이 있네요 ㅋㅋ


한번 생각해보시고. 구현해보세요.

구현은 아니더라도 어떻게 풀면 될지 토론해봅시다. 

01' 기장, 02년 회장, 지금은 그냥 마이너스 존입니다.

    • 글자 크기
마인크래프트 in 소풍 (by 10박태수) 좀있으면 소풍 시작이겠군 -ㅁ-) (by '09김제동)

댓글 달기

댓글 38
  • ㅎㅎ 오랜만에 보니까 재밌네요

  • C/C++로????


    겹치지 않게 랜덤 넘버 생성해서

    array에 재저장 한다음 strcmp() 쓰면 될 것 같긴한디;;

  • 10신건님께
    당첨! 10신건님에게 0포인트 팡팡 쏩니다!
  • '09안두헌님께

    써도 되긴 하는데 어떻게 쓰느냐가 문제일듯요...

  • 아... 같은 글자가 아니구나.. cmp쓰면 안되는구나.. ㅠㅠ

  • 전 제거하는 방법을 생각했어요.

    다른분들의 생각에 방해되지않게 짧게 남깁니다.

  • 07최윤수님께
    당첨! 07최윤수님에게 4포인트 팡팡 쏩니다!
  • 그나저나 이런류의 문제는... 문제를 못읽어서 못풀겠네요 ㅠㅠ 영어가 부족함을 많이 느낍니다..

  • 07최윤수님께

    이런류의 문제는 input과 output만 이해하면 풀수 있;;;;

    아마도....[....]

  • 치문형ㅋ.png

     

    아.. 15분...

    오래간만에 C하니까 완전 진짜 헷갈림.. ㅠㅠ

     

    코드도 개판.. ㅋㅋㅋ

     

    이러고 있을때가 아닌데.. OTL

  • 01오치문님께
    당첨! 01오치문님에게 1포인트 팡팡 쏩니다!
  • '09안두헌님께
    01오치문글쓴이
    2012.4.9 18:59 댓글추천 0비추천 0

    그랬군. ㅜㅜ

    아 미안 .. ㅋㅋㅋ

  • 01오치문님께

    형이 내준 문제 풀었다는 증빙이라는 뜻?? ㅋㅋㅋ

     

    그리고 judge 싫어요...

    07년도 알고리즘 대회의 아픈기억이... ㅠㅠ

    그때 형이랑 나랑 비슷한 방식 같은 코드 써서 풀었는데

    형읜 되고 저는 안 됐었어요!

     

    그래서 안함!

  • '09안두헌님께
    01오치문글쓴이
    2012.4.9 18:54 댓글추천 0비추천 0

    파일 이름모얔ㅋㅋㅋㅋ

    짰으면 코드가지고 내가 링크걸어놓은데 가서 judge해바.

    코드 붙여넣고, 언어선택하고, 제출하면 결과 알려줌. 참고로 No뒤에 쩜있어야 한다...ㅋㅋ

  • 01오치문글쓴이
    2012.4.9 18:58 댓글추천 0비추천 0

    코드로 대충 정리해서 댓글로 달아도 되지않을까요?

    어차피 여러 해결책이 나올 수 있으니깐..


    "저런 생각도 할 수 있군~~" "그 방법은 안돼요! 왜냐하면..." 하면서 서로 즐기는거죠.

    한 이틀뒤에 풀이법을 달도록 하겠습니다.

  • 01오치문님께
    그럼 나도 그때 공개하겠음!!
  • 저도.png

    가입까지해서 judge받앗는데... 연속오답의 굴욕이 ㅠㅠㅋㅋ

    이유를 잘 모르겠어요...ㅠㅠ

     

  • 01오치문님께

    싹 지우고 해봤는데요 역시....

    String형을 쓰면 안되는걸까요

  • 07최윤수님께
    01오치문글쓴이
    2012.4.9 20:37 댓글추천 0비추천 0

    아이공;; 출력하라는 것만 해야해 ㅋㅋ


    number: 2

    첫번째문장..


    이런거 다 지우렴 ㅠㅠ 

    "Yes" 아니면 "No." 만 나오게.

  • 07최윤수님께
    01오치문글쓴이
    2012.4.9 21:43 댓글추천 0비추천 0

    그래그래. 침착하게 생각해봐 :)

  • 01오치문님께

    점점 답을 알아가는것 같아서 좀씩 수정해서 올리다보니 계속 실패하네요

    처음부터 다시 생각해야겠어요...;;;

  • 07최윤수님께
    01오치문글쓴이
    2012.4.9 20:45 댓글추천 0비추천 0

    뉴뉴

  • 01오치문님께

    아하 a를 전부이용해서 b를 만들어야 하는거군요

    문제 자체를 잘못 이해하고있었네요 ㅠㅠ

  • 07최윤수님께
    01오치문글쓴이
    2012.4.9 20:40 댓글추천 0비추천 0

    그리고 첫번째 문제에서는, b가 사용 안되었으니까 "No." 라고 해야해~

    serial number를 구성하는 문자/숫자들을 꼭 한번씩은 사용해야 한다.


  • 왜 가입이 안돼;;;

  • 01오치문님께
    ㅋㅋ 마이너스 존의 부활ㅋㅋ
  • 01오치문님께

    이곳은 잠시후 성지가 됩니다!

  • 포인트 팡팡!님께
    01오치문글쓴이
    2012.4.10 13:42 댓글추천 0비추천 0

    ...

  • 01오치문님께
    당첨! 01오치문님에게 -10포인트 팡팡 쏩니다!
  • '09안두헌님께
    01오치문글쓴이
    2012.4.10 13:41 댓글추천 0비추천 0

    설마;;;

    왜 안돼지;;

  • 01오치문글쓴이
    2012.4.12 18:27 댓글추천 0비추천 0

    약속대로 해결책을..처음 생각한 방안입니다.


    방안1. alphanumeric이므로, 입력은 'a'~'z', 'A'~'Z', '0'~'9' 로 구성됩니다. 첫 번째 문장에 문자들이 들어올때마다 해당 값을 index로 해서 배열에 넣습니다. 그러니까.. input['a']++; 머 이런식으로. 아스키 코드값을 배열 index로 이용하는 방법입니다. 소문자,대문자,숫자 모두 아스키코드 값의 범위가 다르므로 저장위치를 적절히 조절하면 되겠지요. (ex: 배열 index 0~25번에는 소문자를, 17~42에는 대문자를, 43부터 52에는 숫자를). 이렇게 한다음에 두 번째 문자열이 들어오면, 역시 그 값을 index로 해서 해당위치에 표시가 되어있는지 확인합니다. 체크되어있으면(값이 1이상) 통과~ 배열의 값은 1줄여주시구요. 0이면 No.를 찍습니다. 대충 이렇게 하면.. 됩니다.

  • 01오치문글쓴이
    2012.4.12 18:27 댓글추천 0비추천 0
    방안2. 코드를 보시지요. 인생은 허무한 것..허허.
     #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int main()
    {
     int t;
     cin >> t;
     while(t--)
     {
      char device[128];
      char pwd[128];
      cin >> device >> pwd;
      if (!strcmp(device, pwd)) {
       cout << "No." << endl; 
      } else {
       sort(device, device+strlen(device));
       sort(pwd, pwd+strlen(pwd));
       if (!strcmp(device, pwd)) {
        cout << "Yes" << endl;
       } else {
        cout << "No." << endl;
       }
      }
     }
     return 0;
    }


  • 01오치문님께

    두번째방법은 가히 멘붕급...이네요 ㅋㅋ

  •  #include <iostream>
    #include <string>
    using namespace std;
    int main(){
     int number, i, j;
     string s1="", s2="";
     bool result = false;
     cin >> number;
     for(i=0; i<number; i++){
      cin >> s1;
      cin >> s2;
      if(s1.length() != s2.length()){
       result = false;
      }else{
       result = true;
       
       for(j=0; j<s2.length(); j++){
        if(s1.find(s2.at(j)) >= 0 && s1.find(s2.at(j)) < s1.length()){
         s1.erase(s1.find(s2.at(j)), 1);
        }else{
         result = false;
         break;
        }
       }
      }  
      if(result){
       cout << "Yes"<<endl;
      }else{
       cout << "No."<<endl;
      }
     }
     return 0;
    }


    전 스트링에 값을 저장하고

    스트링 길이만큼 루프를 돌면서 하나씩 지우는 식으로 짜봤는데

    어째서 안될까요ㅠㅠ

  • 01오치문님께

    아.... 조건이 ㅠㅠ

    그거 하나 추가하니 바로 정답이 나오네요... ㅠㅠ

  • 07최윤수님께
    01오치문글쓴이
    2012.4.13 22:57 댓글추천 0비추천 0

    음. 다른건 모르겠고, 이 경우에 첫번째 문자열과 두번째 문자열이 같으면 true가 되지않나?

    문제 조건에는 아예 똑같으면 안된다고 되어있어서 ㅋ (ex: weired weired ==> false가 되어야함)

  • 간단히 정리하면 첫번째 문제는 개념적으로 연습장에 첫번째 들어온 문장을 표시해 두었다가 비교하는 식이고, 두번째는 문자열도 결국 아스키 값으로는 숫자이기 때문에 둘다 순서대로 재배치하여 같은 조건을 만든후에 비교하는 방식이군요.

    세번째 방법으로는 첫번째와 비슷한 방법이기도 한데 문자열의 아스키 값을 더해 저장하고 비교하는 방법도 좋을 것 같네요.

     #include <iostream>
    #include <string> using namespace std;
    int main()
    {
     int t;
     int nDev = 0, nPwd = 0; cin >> t;  while(t--)
     {
    char device[128];
      char pwd[128];   cin >> device >> pwd;   if(strlen(device) != strlen(pwd)) 
      {
       cout << "No." << endl;
       continue;
      }
    
      int i = 0;  while(device[i] != NULL)
      {
       nDev += int(device[i]);
       nPwd += int(pwd[i]);
       i++;
      }
    
      if(nDev == nPwd) cout << "Yes" << endl;
      else cout << "No." << endl;
     }  return 0; }


     음 그냥 첫번째 두번째 방법보고 살짝 변형 해본 거 뿐이지만요;;



     

  • 윤수가 재기한 문제중에 ac=bb 같은 특수한 경우나 나올 수 있는 문제가 있군요;; 결국 문자열은 중복된 문자가

    존재하지 않는다는 전제조건이 붙습니다.

     

번호 제목 글쓴이 날짜 조회 수
공지 [난해한코딩대회] 예시4 16황지우 2020.08.31 363
공지 회장님 훈화말씀16 16황지우 2020.03.16 8540
공지 스맛폰으로 BLENDING홈피 새글 알림 받기1 BLENDING 2011.06.25 195309
3262 저도 로고 만들어봣어여 10박태수 2012.04.26 7739
3261 로고를 만들어보았습니다.3 08정호열 2012.04.26 7970
3260 클라우드 서버! 07한형선 2012.04.25 5022
3259 블렌딩 문열면 첫번째 PC에 있던 이어폰 보신분 있으신가요?2 12손윤호 2012.04.23 6657
3258 [학부] 수업평가 관련 안내2 10신건 2012.04.16 6914
3257 시험8 08김종현 2012.04.16 7107
3256 블랙데이래요~5 10박유정 2012.04.14 6715
3255 오늘은 13일의금요일!1 10박유정 2012.04.13 6903
3254 [학부] 하계계절수업 전공교과목개설 수요조사3 10신건 2012.04.12 6832
3253 마인크래프트 in 소풍 10박태수 2012.04.11 6538
이 문제좀 봐요 ㅋ38 01오치문 2012.04.09 13527
3251 좀있으면 소풍 시작이겠군 -ㅁ-)2 '09김제동 2012.04.07 7602
3250 책 또 샀습니당!2 08김종현 2012.04.07 7900
3249 최윤수 선배님 삼단논법 과제(?).7 12하민수 2012.04.06 7367
3248 공쪽에 미용실 있는 거 아시죠 ㅋㅋ 매직하면 머리 코팅해준대요 ㅋㅋ6 08이혜린 2012.04.05 7099
3247 여러분 가장 슬픈게 뭔지 알아요?4 10박태수 2012.04.05 7005
3246 신입생분들 중 과제확인이 안되신 분들 10박태수 2012.04.03 6545
3245 미니맥을 설치하고,,, 10박태수 2012.04.02 6781
3244 IT-VG (Vital Group) STP 선발 공고2 10신건 2012.04.02 6473
3243 강라에서 본 우리은행 스마트앱 공모전 홍보2 07최윤수 2012.04.01 6745
이전 1 ... 22 23 24 25 26 27 28 29 30 31... 190다음
첨부 (0)
위로