Загружаем каталог…
Загружаем каталог…
문제 내가 생각했을때 문제에서 원하는부분 한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 내가 이 문제를 보고 생각해본 부분 int xCount = 0;: $x$항의 계수들을 누적하는 변수이다. int numCount = 0;: 숫자만 있는 상수항들을 누적하는 변수이다. String[] terms = polynomial.split(" ");: 입력된 수식에서 공백을 기준으로 항과 연산자를 쪼개서 배열로 만든다. for (String term : terms): 쪼개진 항들을 하나씩 돌면서 확인한다. if (term.equals("+")) continue;: + 기호는 연산자이므로 계산할 필요 없이 건너뛴다. x항 처리 (if (term.contains("x"))):항에 x가 포함되어 있을 때 실행된다. 만약 그냥 "x"라면 계수가 생략된 것이므로 xCount에 1을 더한다. "3x"처럼 숫자가 함께 있다면 replace("x", "")로 x를 지우고 남은 숫자를 정수로 바꿔 xCount에 더한다. 상수항 처리 (else):x가 없는 항은 순수 숫자들이므로 정수로 변환하여 numCount에 더한다. StringBuilder answer = new StringBuilder();: 문자열을 효율적으로 이어 붙이기 위해 사용한다. x항 조립:xCount가 0보다 클 때만 실행된다. 계수가 1이면 1x가 아니라 x만 추가하고, 1보다 크면 숫자와 x를 함께 붙인다. 상수항 조립:numCount가 0보다 클 때만 실행된다. 앞에 x항이 이미 존재했다면 수식 연결을 위해 " + "를 먼저 붙인 뒤 숫자를 더해준다. return answer.toString();: 완성된 최종 수식 문자열을 반환한다. 코드로 구현 class Solution { public String solution(String polynomial) { int xCount = 0; int numCount = 0; String[] terms = polynomial.split(" "); for (String term : terms) { if (term.equals("+")) { continue; } if (term.contains("x")) { if (term.equals("x")) { xCount += 1; } else { xCount += Integer.parseInt(term.replace("x", "")); } } else { numCount += Integer.parseInt(term); } } StringBuilder answer = new StringBuilder(); if (xCount > 0) { if (xCount == 1) { answer.append("x"); } else { answer.append(xCount).append("x"); } } if (numCount > 0) { if (xCount > 0) { answer.append(" + "); } answer.append(numCount); } return answer.toString(); } } 프로그래머스 코드 package programmers.programmers2; // 프로그래머스 다항식 더하기 public class Main159 { public static void main(String[] args) { Main159 main = new Main159(); // 테스트 케이스 실행 및 확인 String test1 = "3x + 7 + x"; String test2 = "x + x + x"; System.out.println(main.solution(test1)); // 예상: 4x + 7 System.out.println(main.solution(test2)); // 예상: 3x } public String solution(String polynomial) { int xCount = 0; int numCount = 0; String[] terms = polynomial.split(" "); for (String term : terms) { if (term.equals("+")) { continue; } if (term.contains("x")) { if (term.equals("x")) { xCount += 1; } else { xCount += Integer.parseInt(term.replace("x", "")); } } else { numCount += Integer.parseInt(term); } } StringBuilder answer = new StringBuilder(); if (xCount > 0) { if (xCount == 1) { answer.append("x"); } else { answer.append(xCount).append("x"); } } if (numCount > 0) { if (xCount > 0) { answer.append(" + "); } answer.append(numCount); } return answer.toString(); } } 위에 있는 코드를 변경한 코드 마무리 코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
프로그래머스 다항식 더하기. 문제 내가 생각했을때 문제에서 원하는부분 한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 내가 이 문제를 보고 생각해본 부분 int xCount = 0;: $x$항의 계수들을 누적하는 변수이다. int numCount = 0;: 숫자만 있는 상수항들을 누적하는 변수이다. String[] terms = polynomial.split(" ");: 입력된 수식에서 공백을 기준으로 항과 연산자를 쪼개서 배열로…
Открыть источник