본문 바로가기
Coding Test

문자열을 가지고 프로그램 작성하기 (사이냅소프트 면접문제)

by leehii 2022. 6. 15.

 

주어진 문자열 text를

 split함수로 배열 str에 쉼표를 기준으로 잘라서 담음

 

 

1. 김씨, 이씨 몇명인지?

2.이재영이 몇번 중복인지?

 

---------------------------------------------------------------------

 

이후  ArrayList 형태인 list에 

for문을 써서 인덱스0번부터 str배열의 길이(이름의 수)만큼 

list에 add를 써서 담아준후

 

해당 배열의 인덱스 번호로 startsWith 함수를 써서 첫글자와 일치하는 값을 

cnt변수에 증감연산자를 써서 세어주고

 

equals로 일치하는 이름을 마찬가지로 cnt변수에 증감연산자를 서서 세어줌

 

 

 

 

3.중복 이름 제거하기

4.중복이름 제거하고 오름차순정렬

---------------------------------------------------------

 

for문을 한번 쓸 경우

마지막 배열(n번째)과 n+1(범위를 벗어난 인덱스번호)를 비교함으로 오류가 발생함

따라서 이중for문으로 중복이 있는지 비교해줌 

 

첫번째 for문은 0번 인덱스부터 list의 길이만큼

두번째 for문은 1번 for문보다 +1만큼 반복한 후

첫번째 for문의 i와 두번째 for문의 j를 각각 비교해서 중복값이 있으면 j를 배열에서 제거함.

 

!!!!

여기서 i를 제거할 경우 i=j일때 비교할 값인 비교할 기준인 i가 사라져서

2번이상의 중복이 제거되지않음

따라서 j를 remove해줘야 함

!!!