Java StringBuffer, StringBuilder 사용법 및 차이점 - 자바 동적 문자열 - Java에서 문자열을 다루는 대표적인 클래스로 String, StringBuffer, StringBuilder가 있습니다. 연산이 많이 이루어지지 않을 때에는 어떤 클래스를 사용해도 이슈에 무방하지만, 연산이 많아지거나 멀티쓰레드 등의 상황이 자주 발생한다면 각 클래스의 특징을 이해하고 상황에 맞게 적절하게 사용해야 합니다. 1. String vs StringBuffer / StringBuilder 먼저 String은 불변의 속성을 가집니다. String str = "hello"; // String str = new String("hello"); str += "world"; // "hello world"..
프로그래머스 코딩테스트 연습문제 - 수박수박수박수박수박수? - Java URL programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 programmers.co.kr 문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입..
프로그래머스 서울에서 김서방 찾기 (코딩 테스트, 알고리즘) URL programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니 programmers.co.kr 문제 설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이..
객체지향 프로그래밍 (Object-oriented Programming) 객체지향 언어(Object-oriented Programming) 객체지향 언어는 프로그램을 객체 단위로 나누어 객체를 중심으로 프로그램을 구성하는 언어를 말한다. 객체지향언어의 장점 1. 코드의 재사용성이 높다. 2. 코드의 관리가 용이하다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 클래스와 객체 클래스 클래스는 '객체를 생성하기 위한 틀'이며 속성과 기능으로 정의되어 있다. 객체 객체는 '실제로 존재하는 것' 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물이 유형의 객체, 수학공식, 프로그램 에러와 같은 논리나 개념을 무형의 객체라고 정의한다. 클래스를 정의하고 클래스를 통해 객체를 생성하는 이유는 설계도를..
조건문과 반복문 문제 1 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하라. * 풀이 과정 * ① 우선 for문으로 반복될 때마다 i (정수타입 변수) 값에 1부터 20까지의 정수 값이 저장되어 내려가게 한다. ② 1 ~ 20의 정수가 순서대로 if문의 조건식에 들어가게 된다. ③ 총합을 저장할 변수(sum)를 잡고 if문의 조건식이 참이면 sum에 i의 값을 더해준다. ④ 전체 for문 바깥에 print문으로 sum을 출력한다. 결과 값 → 73 * 주의할 점 * ▶ int sum 변수를 선언할 때 반드시 for문 위쪽에 위치시켜야 한다. (for문 안쪽을 위치로 하면 반복할 때마다 초기화가 되기 때문에) ▶ '배수' 라는 단어가 나오면 %(나머지 연산자)를 이용해 나누어 떨..
배열은 총합과 평균, 최대값과 최소값, 섞기(shuffle) 등으로 활용할 수 있다. 1. 배열을 이용해 총합과 평균 구하기 배열의 모든 요소를 더하여 총합과 평균을 배열을 통해 구할 수 있다. ① 총합을 저장할 변수 sum과 평균을 저장할 변수 average를 선언한다. ② 배열 score를 선언 'int[] score' 하고 초기화{100, 88, 100, 100, 90} 한다. ③ for문의 i의 초기값은 0으로 두고 (배열의 요소는 0부터 시작하기 때문) 조건식은 i < score.length 로 설정하여 배열길이-1 이 된다. ④ for문의 조건식이 참일동안 sum에 score의 각 요소의 값이 중첩되어 더해진다. - i 가 0일 때 score의 1번째 요소값 100값이 sum에 더해진다. - ..
별찍기 1. 직각삼각형 (왼쪽) for(int i = 1; i i) { // 행의 숫자( i )보다 큰 경우에는 System.out.print(" "); // 공백 출력 }else { // 행의 숫자( i )보다 작거나 같은 경우 System.out.print("*"); // * 출력 } System.out.println(); // 줄바꿈 } 1. 첫번째 for문으로 i의 변수를 이용해 5개의 행 구현 2. 두번째 for문에서 j 는 점점 줄어들게 구현을 한다. (1행부터 내려올 수록 공백 출력이 적어지게 하기 위해) 3. if문의 ' j > i '의 조건식은 j가 행의 수보다 큰 경우에 그 만큼의 공백을 출력한다. 4. else에서 j 가 행의 수보다 작거나 같은 경우 별(*)을 출력한다.
조건문과 반복문 문제 2 1+(1+2)+(1+2+3)+(1+2+3+4)+ ... +(1+2+3+4+5+6+7+8+9+10)의 결과를 계산해라. * 풀이 과정 * ① 1 부터 10까지 1씩 증가하는 반복문을 for를 이용하여 작성한다. (변수 i 에 저장) ② 반복할 때마다 sum(초기값 0인 변수)에 i 값만큼 더해지며 반복할 때마다 중첩되어 쌓인다. → i 값이 1부터 10까지 1씩 증가하여 변하는 동안 i 의 값을 누적해서 sum에 저장한다. ex ) i 가 1일 때 sum = 1 → i 가 2일 때 sum = 3 → i 가 3일 때 sum = 6 → sum = 10 → sum = 15 → ... → sum = 55 ③ 따라서 1+(1+2)+(1+2+3)+(1+2+3+4)+ ... +(1+2+3+....