본문 바로가기
프로그래머스 코딩테스트 연습

[프로그래머스 코테 C#] Lv0. 문자열안에 문자열

by 노재두내 2024. 2. 26.

이중 for문..?

어렵당.. 감이 안잡힌당..

 

돌면서 .. 같은게 있으면 1을 더해서 str2의 길이랑 더한게 같다면.. return 2? 이러면 안될거같은디 

되나/?

일단 생각난대로 대충 코드 짜보면

using System;

public class Solution {
    public int solution(string str1, string str2) {
        int answer = 0;
        int same=0;
        for(int i=0;i<str1.Length;i++)
        {
            for(int j=0;j<str2.Length;j++)
            {
                if(str1[i]==str2[j])
                {
                    same++;
                }
            }
        }
        if(same==str2.Length){
            answer=1;
        }
        else{
            answer=2;
        }
        return answer;
    }
}

 

으잉 이게 되네

 

ㅎ 그럼 그렇지 ... 

약간 SeYoungg 에서 Yg 가 그거라면 

내 코드 대로라면 총 3개가 같으니까 2가 나올텐데 (same=3이고 yg.length=2 니까 )

실제로는 1이 나와야하니까.

그렇다면 .. 겹치는건 어캐 처리해야할까

 

일단.. 이 방법 자체가 잘못된거같기도 하고

 

이미 str2에서 같은거 찾은게 있다면 지워버려?

for(int i=0;i<str1.Length;i++)
        {
            for(int j=0;j<str2.Length;j++)
            {
                if(str1[i]==str2[j])
                {
                    str2.Remove(j);
                    same++;
                }
            }
        }

Remove 추가함

또 테스트케이스는 통과했는데 채점해보니까 틀림

 

아 근데 갑자기 foreach문 쓰는게 쉬울거같다는 생각도 드는구만

 

 

아 킹받아 contains쓰면 코드 개짧음;