본문 바로가기

Java107

while문의 사용에 익숙해져보자 알고리즘 문제를 풀다보면, 반복문을 거의 항상 쓴다. 그런데, 나는 항상 for문에만 익숙해져있어서 while문을 잘 안썼다. 그런데 다른분들의 풀이를 보면, 많이 while문을 사용하는걸 볼 수 있었다. 그래서 while문에 대해 공부해보고, 익숙해져보려 한다. 먼저 while문의 구조에 대해 보면, while (조건문) { ; ; ; ... } 이게 기본이다. 조건문이 참인동안 수행할문장들을 수행한다. 그래서 처음 while문을 배울때 가장 많이 나오는 예시가 열번찍어 안넘어가는 나무를 구현한 코드다. int treeHit = 0; while (treeHit < 10) { treeHit++; // treeHit += 1 로도 표현 가능 System.out.println("나무를 " + treeHit .. 2023. 10. 25.
Lv1로 쉬어가기 (5문제) lv2가 점점 어려워지고 있다. 기본기를 다지기 위해 Lv1을 5개만 풀어야겠다. 1. 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. ㅇ 내가푼 코드 public static int solution(int n) { int answer = 0; //n을 String 으로 바꾸고 String numStr = Integer.toString(n); //각자리수를 int로 바꿔서 answer에다가 다 때려박음 for(int i = 0; i < numStr.length(); i++){ answer += Character.getNumericValue(numStr.charAt.. 2023. 10. 25.
알고리즘 공부(2) - 자료구조(리스트,세트,맵) ㅇ 리스트(List) ㅁ 리스트의 특징 - 배열이 가진 인덱스를 버리고 빈틈없는 데이터의 적재를 취함 - 순서가 있는 데이터의 모임 - 빈 엘리먼트x - 데이터 갯수가 정해져있음 - ArrayList, LinkedList, Vector ㅁ 리스트의 메서드 List l = new ArrayList();//길이를 안정하면 기본 저장용량 10으로 생성 l.add("김"); l.add("태"); l.add("형"); l.remove("김");//"김" 삭제 l.remove(0);//"김"이 사라져서 "태"가 0번이 됨. "태" 삭제 System.out.println(l.size());// "형" 만남아서 1이 출력됨. ㅇ 세트(Set) ㅁ 세트의 특징 - 저장 순서가 유지 되지 않음 - 중복 저장 불가능 - 수.. 2023. 10. 24.
k진수에서 소수 개수 구하기 문제는 생각보다 쉬웠다. 완전탐색으로 풀수도있지만 조건을 잘 보면, 그냥 0으로 스플릿해서 스플릿된걸 소수인지아닌지만 판별하면 되는거였다. 그래서 1트에 어떻게 풀었는지 설명을 해보겠다. ㅇ 1트 몇진수로 바꿔라 하는 k는 10이면 Integer.toString(n) 을써서 그냥 int를 String으로 그대로 바꿔줬고, 10이 아닌경우에는 k진수로 바꿔주는 Integer.toString(n,k)를 썼다. cnt는 0을 기준으로 슬라이싱하고 각 원소들이 소수이면 갯수를 세도록 만들었고, cntN는 String a (n을 k진수화한거) 자체가 0이없는 소수일경우에, 0이 있는지 없는지를 세기 위해 만들었다. num은 a를 다시 Long형으로 바꾼거고, a를첨부터 끝까지 돌면서 0이 있으면 cntN++ 해준.. 2023. 10. 24.