본문 바로가기

JAVA 줘? 잡아줘!54

Try_002 : [스스로] 일본어 단어장 만들기 배열안에 값을 넣어두고, 한글 뜻을 맞게 쓰면 정답과 그 후리가나가 출력되는 프로그램이다. enum 으로 하는 것도 크게 다르지 않아 따로 쓰진 않겠다. 테스트용으로 4개의 배열만 쓴거지만, 오늘 외울 단어만 67개 이다. 시험삼아 만들어 두겠다... 배열은 무한정 늘어날 수 이쓰려나.. 아래는 우리 PT 쌤이 알려주신 거니 참고만 하도록 하시오라 import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class VocabularyQuiz { public static void main(String[] args) { // 단어장을 만듭니다. 단어와 해당하는 정답을 포함합니다. Map vocabulary = new Ha.. 2023. 9. 5.
[Java]Day030 : 다중 for문의 오해 ; 다차원 배열 출력 2중 for 문 , 3중 for문 을 보면 2차원 배열, 3차원 배열 이라고 했다. 누가 그랬는진 모르겠지만 하여튼 누가 그랬다. 근데... 배신 당했다.... 2중 for문을 보면 2*1=22*2=42*3=6... 3*1=33*2=63*3=9... 4*1=44*2=8... 5*1=5 .. 이런 느낌으로 전개되니 당연히 가로/세로가 존재하는 2차원 테이블을 생각 했었다. 그런데... 이런 구조란다. 이차원 배열은 이런식인데, 3차원 배열도 이런식으로 생각하면 크게 어려울거 없는 듯 하다. 주소안에 주소가 있는 느낌... 복잡해지긴 해도 정리가 될 수 있는 구조니까? 위 그림에서 예를 든 배열은 [3][4] 짜리이다. 초기화 하여 선언할 때는 이처럼 하면 된다. 참 쉽죠잉? 자 근데, for문을 돌려 배열.. 2023. 9. 4.
[Java]Day029 : enum. 열거형 타입 선언 enumeration : 열거 배열과 비슷해서 배열 배울 때 같이 알아두면 좋음! + erum : 변수타입 + Week, Login, Gender : 변수명 + { } : 열거 내용 자 그럼 변수와 차이는 무엇일까? 왜 쓰는지, 내가 이해하기로는 배열은 그걸 가지고 조건문이나 비교나 값을 연산하거나 등등에 사용 되기 쉬운데 enum 은 [우리는 한 묶음] 이런 걸 보여주기 위함이고, 상수형태 혹은 String 인데, 주로 불러오는 정도만 쓰는 것 같다 아 그전에!!! 너무 중요한 것! 배열은 main method () 안에 작성이 가능하지만! enum 은 main 문 밖에 써야 한다. 또, 이 enum 을 배열의 형태로 불러와서 사용할 수 도 있다. for-each 문의 활용이며, Week.values(.. 2023. 9. 4.
[Java]Day028 : for - each 문 / 향상된 for 문 이라고도 부릅 가장 간단한 예를 들어 보겠다! int[] num = {1,2,3,4,5}; int sum = 0 ; for(int i=0; i 2023. 9. 4.
[Java]Day_027 : 배열내에서 for 문 없이 최대값 / 최소값 뽑아내기 결론 부터 말하겠다. 아래 글 보지마시오! if / else if / else 의 이해가 부족하다고 밖에 말을 못하겠다. 당장은 해결할 일이 많아 미제사건으로 남겨 두려 한다.... 꼭 다시 풀어낼 것이다! 왜 틀린 값이 나온지도 이해할 것이다. 그러니 조금만 기다려 달라.... for 문 없이 비교를 하는 정답은 쭈욱 내려서 코드블럭 안에 넣어 두었으니 참고하시길 바란다. for 문 안 쓰고 돌리려다 망해버렸다.... 엉엉 나는 멍청이 뚜잇 뚜잇...ㅠㅠ public class MaxMinExample { public static void main(String[] args) { int num1 = 10; int num2 = 5; int num3 = 8; int max = num1; // 최대값을 num.. 2023. 9. 4.
[Java]Day_026 : 이중 for 문을 이용한 정렬 - 오름차순/내림차순 case 1) case 2) 가 초기값만 다른데, 결과가 다르다? 근데 어떻게 흘러가는지 모르겠네? case 2) 의 경우는 [0] 칸 부터 최소값을 놔두고 이동하고 그다음 [1] 칸 에다가 그다음 최소값을 저장하고, 이런 식이라 좀 이해가 쉽긴하다. 그러니 이거 부터 설명하겠다. 보면 알겠죠? 왼쪽자리부터 작은 수 정리 되는거? 자 이제 case 1) 광기를 보여주지.... 노란 색이 값이 변하는 시점이고, 테두리 친 부분은 변화가 일어나는 부분을 집약적으로 표현한 부분이다. 이거는 노란색 부분만 체크를 한것이다. 다시 위의 표를 보면, 파란색 글씨가 i 가 표시하는 기준 점이고 보면 [ i ] 기준으로 왼쪽은 정리가 되어가는 모습이다. [ j ]가 0 ->5로 가기때문에 왼쪽부터, 아니 왼쪽으로 큰 .. 2023. 9. 2.
Try 001 : [프로그래머스] 배열만 배우면 할 수있는 간단하지만 어려운 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 사이트 처음 접속해서 가입해서 처음 풀어본 문제 입니다. [프로그래머스] 좋네요 다들 추천! 처음 보자 마자? 에? 이런 것도 문제? 했으나 약 1시간이 걸린 문제다 프로그래머스가 원하는 대로 제출은 못했고 Eclipse 에서는 답을 찾았으나, 여튼 프로그래머스 기준 실패다... 고작 Java 배운지 몇일 안 되서 환경(?)이 바뀌면 이해하질 못하는 고정도 수준이다. 문법 자체를 이해하지 못 .. 2023. 9. 2.
[Java]Day_025 : 배열. 선언방법 / 초기화 / 값 넣고 / 예외 / 오류 드디어 들어갔다. for문과 배열에 들어가면 개념은 가벼울지 몰라도, 예외 및 활용이 너무 많다 그 말인 즉슨, 이제 내 대가리는 수명을 다해간다는 것이다. 너무 어렵다. 개념을 이해하는 것도 어려운데 문제는 왤케 어려운 것이냐.... 일단 배열에 대해 알아보자 위는 배열만 설정하는 방식이고, 아래는 값을 넣은채로 선언하는 방식이다. ↓ 아래는 잘못된 예이다. 이렇게 하면 안된다는 걸 보여주는 거니 참고만 하도록 하자 예외 오류 1-ArrayIndexOutOfBoundsException // 배열을 선언한 후에는 {} 로 값을 넣을 수 없다. // { } 는 초기화 할 때 즉, 배열 선언과 동시에 값을 넣을 때만 가능하다 int[] arrError1 = new int[4]; arrError1 = {10,.. 2023. 9. 1.
[Java]Day_024 : 구구단 출력하기 (다중 for 문 이해하기) for문 바깥/안 쪽의 이해와 가로/세로 테이블의 이해 j/i 등 변수 선언 순서의 이해 필요하다고 생각함다 하나씩 써보면서 그림을 그려보는 것을 추천 다만.... 지금이야 2중 for 문 이지만 3중 이상으로 넘어가면 그림도 못 그리므로 초반에 개념을 잘 잡아두는 것이 좋다. 2023. 8. 31.
[Java]Day_023 : 지폐 매수 구하기 int money = 50000, remain=0; Scanner sc = new Scanner(System.in); System.out.print("수금액: "); int cost = sc.nextInt(); boolean sw = true; while(money>0) { remain= cost/money;// 권수 cost = cost%money;//남은 금액 System.out.println(money+"원권 : "+remain+" 개"); if(sw) { money=money/5; sw = false; }else { money=money/2; sw = true; } } sw를 이용하여 true/false를 깜빡여서 50,000 --> 10,000 --> 5,000 ... 각 5 나누기 2 나누기로.. 2023. 8. 31.
[Java]Day_022 : 입력값 비교 최대값/최소값 (max/min) if(max 2023. 8. 30.
[Java]Day_021 : Switch-Case 문 없이 쓰는 Switch 방법 // Switch 방식. true 면 if 들어가고 false로 바꿔 주고. // false 일때는 다른 조건을 실행하고 true로 바꿔주고 등등 int i=1; int oddSum=0; int oddCount=0; int evenSum=0; int evenCount=0; boolean sw = true; while(i 2023. 8. 30.
[Java]Day_021 : 입력받은 수만큼 합계 / 평균 구하기 // 키보드로 j개의 정수를 입력받아 짝수의 합과 짝수의 갯수를 출력하시오. // Scanner sc = new Scanner(System.in); System.out.print("몇개의 숫자를 입력할 것인가? :"); int j = sc.nextInt(); int[] emptyArray = new int[j]; int sum=0, count=0; for(int i=0;i 2023. 8. 30.
[Java]Day_020 : Up/Down . 업다운. 숫자맞추기 ( 난수 생성기 ) // 숫자 맞추기 // 1-100사이의 임의의 수를 입력받아 임의의 난수와 같으면 몇번만에 맞추었는지 출력하시오 Scanner sc = new Scanner(System.in); int com = (int)(Math.random()*100+1); System.out.print("임의의 수를 맞추어보시오 : "); int me = sc.nextInt(); int count=1; while(com != me) { if(me Random 아래의 그림 보며 다 이해할 것이다. 이거처럼 1 부터 100 까지 출력할려면 (int)(Math.random()*100+1); 이처럼 하면 0 2023. 8. 30.
[Java]Day_019 : 주차 요금 계싼 주차요금은 10분 미만은 무료, 30분 까지는 500원, 30분 이후부터는 10분당 500원씩 계산 주차시간이 42분 인 경우 주차요금은 1,500원이 된다. 하루 최대 30,000원 int carno = 0, time=0, day=0; int money=0; Scanner sc = new Scanner(System.in); System.out.print("차량 번호를 입력하시오 : "); carno = sc.nextInt(); System.out.print("주차 시간을 입력하시오 : "); time = sc.nextInt(); sc.close(); //집에가서 풀어볼 문제 ; 24시간이 지나면 30,000원이 저장되고 다시 요금계산이 시작되는 프로그램을 짜시오 if(time>1440) { day= (.. 2023. 8. 30.
[Java]Day_018 : 가위바위보 게임, 나보다 짧은 사람 나와봐 switch 문 을 배우며 가위 바위보 게임을 만들어 보았다. 개념? 알고리thm 이해 잘 안가더라...만... 설명해보겠다 오늘은 자랑 스러운 본게임 부터 들어가도록 하겠다. 게임명 : 가위바위보 2선승 보시면 아시겠지만 Math.random() 으로 난수 생성하였고 (1~3) 컴푸타가 이기면 comwin 반대면 usewin이 증가 먼저 2에 도달하면 while 문 탈출! 이렇게 짧을 수 있다니 아주 만조쿠 한다 후후후 자 조금더 설명을 해보겠다 가위 : 1 , 바위 : 2, 보 : 3 라고 임의로 숫자를 지정한 후, 두 수의 차이를 이용해 case를 줄일 것이다. 총 5가지의 경우가 있다 user 가 승리하는 경우 : 1 / -2 비기는 경우 : 0 user 가 지는 경우 : -1 / 2 근데 이 마.. 2023. 8. 25.
[Java]Day_017 : if 문 활용한 예시. 코드 순서 중요! 예시 코드 전에. 아마 if / if-else / if-else if-else 의 차이점을 찾아 오신분이 있을거다. 없어도 어쩔 수 없다. 내가 쓸거니까? (1) if . if (조건) {실행문;} 이거 보려고 여기 온 건 아닐테고.. (2) if - else if로 조건을 걸고 그 담에 else 를 쓰면 if 들어 갔다가 아 여기 아니네? 하고 실행안하고 나온 담에, if 조건외 일 때 실행한다 (3) if - else if - else if 갔다가 어 이건 아닌데 하고 실행안하고 else if 에서 새로운 조건을 공략을 내세우고, if 도 else if 도 아닌게 else가 된다 자 여기서!!!!!!!!!!!! 이게 진짜 헷갈려서 몇번 실험 끝에 알아 낸 것을 꺼내보려 한다. (1) if 가 여러개 .. 2023. 8. 25.
[Java]Day_016 : DecimalFormat 너무 귀찮지 않음? DecimalFormat 을 선언하면 쓸 때 마다 df.format()을 써야해서, 같은 형식으로 같은 변수를 여러번 출력할 때는 상당히 비 효율 적이다. 그래서 뭔가 형식 지정이 된 상태로 또 다른 변수에 저장해버리고 싶어서 쓰는 글입니다 또 몇가지를 알려드리겠다 (1) Scanner 입력 받는 형식이 String 일 경우 이러면 이해가 가는가 ? 보통은 "씨" 같은 걸 붙히겠지만? 나는 그냥 "번"을 붙혀보았다. 불만있느냐? 없으면 다음 이러면 내가 "홍길동"을 입력해도 "홍길동번"으로 name에 저장된다. 그렇게 알고 있어라 (2) 변수 추가 선언! DecimalFormat df1 = new DecimalFormat("###,###'점'"); DecimalFormat df2 = new Decimal.. 2023. 8. 24.
[Java]Day_015 : if~else~else if~ 비교해 봅시다. (조건문) if 의 악랄함에 대해선 다들 많이 들어봤겠지 진짜 젤 많이 쓰이고 젤 어렵고 겹으로 쓰면 더 어렵고... 머리 터지고... flow chart 짤 때, 진짜 제일 중요한 거 같고... 이 부분을 간단하게 만들 수록 소스가 가벼워진다고 생각합니다. 결국 알고리thm 도 if 등 조건문의 싸움이니깐... 자 살짝 설명해보자면 if(x>=50) { system.out.print("상위권"); } 뭐 가볍게 이렇게 시작하지? ()안에 조건문이고 그게 참일 때 {}안에 돌아가는 구조. 설명보다 그냥 보시라 대충 위에 처럼 짜면 x가 50이상이면 상위권이 출력되는 것이다. 자세한 건 책이나 다른 블로그 보시고... 내가 이 글을 쓰는 건 if / else if / else 를 비교하기 위함이요 (예시) 조건이 다.. 2023. 8. 24.
[Java]Day_014 : 소수점 자리 맞추기 π (pi) = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360… 계산 결과 값이 정수만 나오는 것은 아니다. .. 2023. 8. 24.