분류 전체보기 85

[Bac|<joon>] 백준 :1152 : 단어의 갯수 (StringTokenizer)

이 문제를 본순간 공백을 이용한 형변환 for문 if문등이 떠올랐고 코드도 쉽게 완성했다. 쉬운데 왜 정답률이 낮을까 생각했는데.. 결정적으로 해결할 수 없던 문제가 있다. 바로 '공백'만 입력되었을때, 이를 걸러내기가 힘들다는것 걸러내기위한 코드를 작성한다쳐도 코드가 이뻐지지않는게 딜레마였다. 그치만 몇몇 클래스를 이용하면 굉장히 간단하게, 이쁘게 단어갯수를 셀 수 있는 코드를 짤 수 있었던것이다. 1) StringTokenizer - 입력 Scanner StringTokenizer class 사용법 StringTokenizer sc = new StringTokenizer("abc def ghi"," "); System.out.println(sc.countTokens()); 실행결과 : 3 (문자의 개..

Java/BackJoon 2021.04.23

[Array] 버리긴 아까운 백준 오답 (feat.MultiArray,No.4434)

● 예제의 출력 결과만 보고 코딩을 하니 이런 식으로 코딩을 해 벼렸다고 한다. 그래도 2차원 배열은 어느 정도 할 줄 아는 듯하다.. public class Main { public static void main(String[] args) { int[][] Case = { { 5 }, { 5, 50, 50, 70, 80, 100 }, { 7, 100, 95, 90, 80, 70, 60, 50 }, { 3, 70, 90, 80 }, { 3, 70, 90, 81 }, { 9, 100, 99, 98, 97, 96, 95, 94, 93, 91 } }; int[] sumArr = new int[Case[0][0]]; for (int i = 1; i < Case.length; i++) { for (int j = ..

Java/Daily-Java 2021.04.21

[Bac|<joon>]백준 : 4344 :평균은 넘겠지

예제를 보는 순간 바로 배열을 사용하자는 생각이 떠올랐지만, 무식하게 2차 배열을 쓸 생각으로 코드를 짜다 보니 예제는 풀었지만 입력값을 줘야 하는 걸 까먹었다. (2차 배열을 이용한 예제 출력은 Daily-Java에 업로드 예정) 출력을 보면 우리는 대학생 새내기들이 속한 행에서 평균점수를 넘는 학생의 수치만 출력하면 된다. 배열에 모든 숫자를 넣어 관리하면서 예제를 출력하는 방식이 아니라 그때그때 필요한 행의 점수를 입력해서 원하는 값을 출력 후 초기화하여 배열을 재사용하는 코드를 짜 보도록 하자 1) testcase 학생들의 평균점수를 넘은 수치를 구하는 건 testcase 만큼 실행한다. 즉 testcase는 총 실행 횟수 첫 번째 for문의 변수 2) 학생수 N 각 testcase마다의 학생수 ..

Java/BackJoon 2021.04.21

[Array] 2차원 배열의 90도 회전

● 2차원 배열을 90도 회전시키려면 어떻게 해야 할지를 생각해보자 주어진 배열↓ char[][] star = { {'*','*',' ',' ',' '}, {'*','*',' ',' ',' '}, {'*','*','*','*','*'}, {'*','*','*','*','*'} }; star 2차원 배열을 90도 돌려놓은 2차원 배열 result 배열을 생성하여 star배열의 성분들을 옮길 것이다. 그리고 그 안의 성분들을 정말로 90도 회전하여 옮긴다는 생각으로 코드를 짜 보자 1) 배열의 회전 4행 5열의 2차원 star배열의 성분들을 옮겨 담을 곳 result 배열을 생성, 이제 star의 행을 90도 회전시켜서 넣을지 열을 회전시켜 넣을지 고민해봐야 한다. 공부하는 입장이기에 2가지의 경우를 모두 ..

Java/Daily-Java 2021.04.20

Call by value

● 자바의 정석 예제를 통하여 call by value를 알아보자 ● Call By Value란? 자바, C언어 등은 함수에 매개변수값을 전달할 때 Call By Value라는 방식을 사용한다. (C++은 참조연산자 '&' 가 있어서 call by reference를 지원한다.) 좀 더 쉽게 말하면 '값'을 복사해서 전달하는 방식을 사용하는데 이것이 바로 Call By Value 라고 한다. 먼저 아래 예제를 한번 같이 살펴보고 그 결과를 예측해보자 class Data {int x;} public class PrimitiveParamEx { public static void main(String[] args) { Data d =new Data(); d.x=10; System.out.println("mai..

Java/Java Study 2021.04.19

[Array] 동전 거슬러주기 _ Part 2 (응용)

● 동전을 거슬러주자 다만 part1과 달리 이번엔 동전의 개수가 정해져 있다. 문제 (출처: 자바의 정석 연습문제) public class Practice07 { public static void main(String[] args) { if (args.length != 1) { System.out.println("USAGE: java Exercise5_7 3120"); System.exit(0); } int money = Integer.parseInt(args[0]); //커맨드라인으로 받은 변수는 문자열이므로 정수로 변환한다. System.out.println("money=" + money); int[] coinUnit = { 500, 100, 50, 10 }; int[] coin = { 5, 5, ..

Java/Daily-Java 2021.04.15

[Array] 동전 거슬러주기 _ Part 1

● Java를 이용한 동전 거슬러주는 코드를 작성해보자 문제 조건 : A. 내가 가진 동전의 종류 : 500원 100원 50원 10원 B. 동전의 개수는 무제한 C. 500원부터 10원 순서로 큰 금액의 동전을 우선적으로 거슬러 줘야 한다 D. 받은돈(money) : 2680 Result↓ money=2680 500 : 5 100 : 1 50 : 1 10 : 3 1) 배열 설정 int [] coinUnit = {500,100,50,10}; int [] coinNum = new int [4]; // coinUnit 당 거슬러 줄 동전의 개수를 넣어줄 배열 출력 시 필요 2) 거슬러 줄 동전의 갯수 구하기 int money = 2680; // 거슬러 줘야 할 돈의 액수는 중요치 않으므로 조건에 안 넣음 26..

Java/Daily-Java 2021.04.15

[Array] 배열을 응용한 " * " 출력 예제

● 배열을 응용한 " * " 출력 예제 int[] Arr = { 1,4,4,3,1,4,4,2,1,3,2 }; Q : 주어진 배열에 중복하는 숫자의 개수만큼 각각 * 를 출력하는 코드를 작성하라 Result ↓ 3*** 2** 2** 4**** 1) 배열을 선언하자 int[] Arr = { 1,4,4,3,1,4,4,2,1,3,2 }; 그리고 * 를 찍어줄 "횟수"를 담아줄 배열을 만든다. int[] Arr2 = new int[4]; // 4개의 숫자의 중복횟수를 넣을꺼니 인덱스는4개 2) 무엇을 구해야 하는가 이것을 어떻게 프로그래밍으로 구현할것인가 우선 우리는 Arr에서의 중복되는 숫자의 횟수를 구해야한다. 그리고 그값을 Arr2에 넣을것이다. Arr2[0] = 중복횟수 (+1+1+1) Arr2[1] =..

Java/Daily-Java 2021.04.13

[Array] 2차원 배열 응용

● 2차원 배열을 이용하여 다음의 결과를 출력해보자 실행결과 각행의 맨 우측은 각행의 합, 맨 아래는 각 열의 합, 6행 4열 은 전체 성분의 합 Result↓ 100 100 100 300 20 20 20 60 30 30 30 90 40 40 40 120 50 50 50 150 240 240 240 720 다시 한번 생각해봐도 잘 모르겠으면 일단 손으로 써보면서 생각해보자, 손으로 프로그래밍의 동작 순서를 가시화하면서 공부하는 게 생각보다 많이 괜찮다. 1) 2차 배열을 구상하자 빨간색은 주어진 배열이고 파란색은 합과 동시에 빨간색 배열을 옮겨 넣을 배열이다. 배열의 확장 이러한 아이디어가 떠오르지않는다면 그냥 이런 문제를 머리에 유형화를 시켜두는 게 정신건강에 좋다 2) 실행순서 우선 생각의 편의를 위..

Java/Daily-Java 2021.04.13

누추한 곳에 귀하신 분이

현재 많으면 한두 명 평상시엔 한 명도 드나들지 않는 저의 블로그에 혹시나 들려주신 분(들) 환영합니다. 이 블로그의 목적은 제가 공부하면서 모르는 개념들, 중요하다 생각하는 것들을 정리하기 위한 공간이고 그리고 본 블로그의 초창기 목표는 아니었으나 제가 처음 IT업계에 발을 들일때 공부하며 겪은 어려움이 훗날엔 과거의 저처럼 생소한 영역에 발을 들이는 분들의 어려움이 될 거란 생각이 들어 제가 공부한 내용과 아는 지식들을 최대한 쉽게, 하지만 그 본질을 훼손하지 않으며 설명해주는 그런 블로그를 만드는 게 지금은 저의 야망입니다. 저 또한 많은 개발자분들, 저처럼 개발자가 되기 위하여 공부한 기록을 올리시는 분들의 블로그를 몇십 개씩 창을 띄우며 이해 안 가던 개념들에 발 묶여 하루를 다 보내곤 했었습니..