java 205

5622. 다이얼 (자바, Java)

이거 좀 악마같았던게...중간에 3자리씩 가다가, 다이얼이 4글자로 늘어나는 불규칙구간이 있습니다! 이거땜에 난이도 떡상했습니다...ㅋㅋㅋ 결국 수학으로 풀어서, 특수성이 적용될 수 있도록 따로 if를 주다가, 그래도 잘 안되길래 다른풀이를 찾아보고 해결했습니다. 단순무식하게 switch로 해결...개인적으로 좋아하는 방법이 아니어서 뭔가 아쉽습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buf..

2908. 상수 (자바, JAVA)

상대적으로 수월한 문제로, 이미 앞에서 했던 자릿수 바꾸기만 능숙하게 할 수 있어도 어려움이 없습니다. 저는 풀이 보니까 쓸데없이 복잡하게 풀었네요...지금 풀라고 한다면, 그냥 각 자릿수를 charAt으로 추출해서, StringBuilder로 거꾸로 합친 뒤 새로운 숫자를 만들듯? 이걸 쌩 int로 Math함수를 동원하고, 2차원 배열쓰고 난리났네요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOExce..

1152. 단어의 개수 (자바, Java)

그냥 문자열 기능 묻는 문제인데, split으로 쪼개서 형성한 배열의 길이를 출력해도 되고, 토큰으로 쪼개서 카운트해도 됩니다. 원래 더 익숙한 전자로 했다가, 자꾸 답이 안맞아서 후자로 했네요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String ..

1157. 단어 공부 (자바, JAVA)

이거 무진장 어려워했던 기억이 납니다. 앞에서는 각 자료형별 변환 (캐스팅), 그리고 String 매소드의 기본적인 부분에 대한 기초적인 공부였다면, 이 문제는 논리적 난이도가 떡상한다고 생각하거든요. 주의할점은 알파벳 카운팅에 있어 대소문자를 가리지 않는다는 것, 이것을 어떻게 계산할 것이냐, 라는 부분이고, 그것이 여러개 존재할경우를 어떻게 인식시킬것이냐, 라는 두 부분이 있네요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { Buffered..

2675. 문자열반복 (자바, JAVA)

초심자를 배려하는 문제입니다. chracter구간이 정해져있어서 얼마나 편해요! 저번 문제와 비슷합니다. character-String-int간 변환이 자유자재로 되는지. 거기에 추가하면 이중반복문이 있는 정도인데, 이건 앞에서 다 했던거니까요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea..

10809. 알파벳 찾기 (자바, JAVA)

엄청 기본적인 문제인데, 앞선 문제에서 언급한 이슈문제로 좀 헤맸습니다. 그래도 문자열 관련 매소드는 워낙 기초적인 부분이라, 잘 정리가 되어있어 구글링에 어려움을 겪지는 않았습니다. 다행히 수업시간에 character A와 a의 int값을 알고 있었기에, 큰 어려움 없이 해결할 수 있었습니다. Scanner 대신 BufferedReader를 쓰다보니, StringTokenizer와 StringBuilder도 익숙해진 것 같네요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) thr..

11720. 숫자의 합 (자바, JAVA)

character, String, int 사이를 자유롭게 왔다갔다 할 수 있는지, 문자열 중 일부를 추출할 수 있는지를 묻는 문제. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int sum = 0; String m = br.readLine(..

11654. 아스키코드 (자바, JAVA)

어느샌가 문자열로 넘어왔네요. 박수! 짝짝짝. 함수는 수학의 영역에 가까웠다고 한다면, 문자열은 순수한 컴퓨터 지식도르 쪽에 가깝습니다. 그야말로 문자열에서 쓸 수 있는 매소드 콜이라던지, 그런 기능들을 배우는 단계라고 보면 되겠습니다. 아무래도 비전공자였던 저는, 이 파트에서 정말정말 고전했습니다. 다행히, 이번 문제는 처음 문제라 그런지 쉽군요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff..

1065. 한수

내가 생각했을때, 이 문제는 컴퓨터퀴즈보다 수학퀴즈쪽에 가까운 문제라고 생각한다. 예제에서, 문제에 대한 힌트를 주었다. 등차수열이 되려면, 세자릿수는 비교가 용이하다. 백의 자릿수와 십의자릿수의 차이, 십의자릿수와 일의자릿수의 차이가 같다면, 등차수열이 되서 한수가 되는 셈이다. 그런데, 두자릿수와 한자릿수는 어떻게 되는거지? 예제 1에서, 110까지 99개임을 확인할 수 있다. 잘 생각해보자. 먼저, 비교가 용이한 세자릿수부터 생각하자. 100부터 110까지 한수가 없음을 쉽게 확인할 수 있다. 일단 10x의 형태는, x=-1이 되지 않으면 한수가 될 수 없으니, 101~109까지는 해당이 없을 것이고, 11x가 한수가 되려면 111뿐이다. 그런데 답은 99가 나왔다? 1부터 99까지는 그냥 한수로 ..

4673. 셀프넘버

문제가 다소 어렵게 느껴질 수도 있지만, 결국 각 숫자의 자릿수를 추출하는 방법만 능숙하다면 크게 어렵지는 않은 문제. 생성자를 구하는 것은 어렵지만, 생성자인 n을 알때 d(n)을 구하는 것은 매우 쉽다. 따라서 범위 안의 d(n)값을 모두 구해준 뒤, 해당되지 않는 수를 셀프넘버로 간주하고 출력하면 끝. 이 문제를 풀 당시에 배움이 부족하여, ArrayList나 Boolean을 이용해 훨씬 더 깔끔한 코딩으로 풀 수 있었던 것을 말 그대로 '풀수만 있는' 코드로 풀었다는걸 느낄 수 있었다. 지금 나보고 풀라고 한다면, 10000 이내의 숫자에서 1에서부터 출발하는 d(n)의 ArrayList를 만들고, 10000까지의 Boolean 배열을 만들어서, ArrayList에 없는 값들은 false 처리한 ..