-
[프로그래머스]문자열 내 p와 y의 개수 : chatGPT의 활용방안까지 - 코딩테스트알고리즘 2023. 8. 9. 14:53
* 강사님의 팁
1. 주석을 다는 걸 아끼지 말자
2. 문제를 내가 어떻게 인지하고 생각이 흐르고 있는지 각자의 방법으로 항상 표시하자. 주석, 메모장, 손필기 등
//함수형 문제(메서드형 문제) class Solution { boolean solution(String s) { /* 배열, 반복, for, 순차탐색(선형탐색) 1. 입력 2. 계산 3. 출력 메서드형 문제에서 '입력'은 무엇일까? 표준입출력형에선 Scanner를 통한 입력 메서드형에서는 '매개변수'를 통해 인자를 받는다. 값:인자(arguments), 변수 : 매개변수(parameter) 메서드에서 외부로 값을 내보내는 방법 1. (인스턴스 변수, 멤버변수) 변수에 할당, 변경 2. return(반환값) 메서드형 문제에서는 멤버변수를 드물게 쓴다 값 출력에는 무조건 return을 쓴다. 대문자와 소문자가 섞여있는 문자열 s 'p'와 'y'의 개수를 비교해서 (1)같으면 true, 다르면 false를 (2) 'p''y'가 하나도 없다면 true 출력 */ int pCount = 0; //p의 개수를 세는 변수 int yCount = 0; // y의 개수를 세는 변수 //for문 밖에 있어야하는 이유 : 반복문 돌 때마다 0이 됨 + 스코프 for(int i = 0; i<s.length(); i++) { char c = s.charAt(i); System.out.println(c); //순차탐색 //index -> 길이만큼 반복해서 처리 if(c == 'p' || c == 'P') { //문자 c가 p 또는 P인 경우 pCount++; //pCount에 1을 더함 } if(c == 'y' || c == 'Y') { //문자 c가 y 또는 Y인 경우 yCount++; //yCount에 1을 더함 } } System.out.println("pCount: " + pCount); System.out.println("yCount: " + yCount); boolean result; if(pCount == yCount) { result = true; } else { result = false; } return result; } }
[chatGPT의 활용]
GPT가 문제를 풀어주는 건 아직 어려워한다. 하지만 주어진 코드를 리팩토링(코드를 효율적으로 재구성)하는 능력은 뛰어나다.
class Solution { boolean solution(String s) { int pCount = 0; int yCount = 0; for (char c : s.toCharArray()) { if (c == 'p' || c == 'P') { pCount++; } else if (c == 'y' || c == 'Y') { yCount++; } } return pCount == yCount; } }
'알고리즘' 카테고리의 다른 글
[프로그래머스] k번째 수 | 정렬 | 코딩테스트 (0) 2023.08.09 [프로그래머스] 제일 작은 수 제거하기 | 배열, 리스트 | 코딩테스트 (0) 2023.08.09 [백준]개수 세기 | 배열 | 코딩테스트 (0) 2023.08.09 2. 탐색과 정렬 (0) 2023.08.09 1. 알고리즘 입문 (0) 2023.08.09