Java 28

[백준 JAVA] 10798 - 세로읽기

생각보다 어렵고 문법 이해를 도와준 고마운 문제이다. 처음에 헤매었던 것은 문자열을 얼마나 받을지가 정해지지 않는다는 점이었다.어떤식으로어떤 식으로 구현을 할까 생각하다가 나의 자바 지식끈이 짧아 다른 문제에서 어떤 식으로 처리하는 지만 참고를 했다. 보통의 사람들은 해당 예제의 열 갯수로 지정했더라. 내가 생각한 로직은 이렇다.이중 for문으로 2차원배열 구현, 띄어쓰기가 없으니 StringTokenizer 사용x모두 입력 받고, 똑같이 이중 for문으로 세로 출력 이 문제 또한 입력값이 매우 작아 시간제한과 문자열 제한은 신경 안 써도 된다고 판단했다. 먼저 내가 구현한 코드이다.import java.io.*;public class Main { public static void main(Stri..

[백준 JAVA] 2566 - 최댓값

2차원 배열에 대해 알아가기 좋은 쉬운 문제였다! 먼저 나의 구현 로직은 이렇다.2차원 배열로 값을 적재함.적재하면서 매 Math.max()를 이용 -> 실제 로직 구현해보니 해당 행렬 반환이 어려워 if문으로 개별 비교 후 적재 먼저 처음 생각한 로직은 Math.max를 이용하는 것이였다. 그런데 막상 구현해보니 해당 함수를 쓴다면 최댓값 행렬 로직을 짜야될지 생각이 나지 않았다. 그래서 간단하게 if문으로 개별 비교한 다음 적재하는 거로 구현했다! 또한 2차원 배열 구조상 이중 for문을 사용하지만, 입력의 수가 매우 적다는 점에서 시간제한과 메모리 제한은 상관 없다고 판단했다. import java.io.*;import java.util.*;public class Main { public st..

[백준 JAVA] 2738 - 행렬 덧셈

2차원 배열 문제를 처음 접근하기 좋은 쉬운 문제였다. 구현 자체는 매우 쉬웠지만, 나는 문제를 잘 이해하지 못해 해석에 대한 시간이 약간 있었다.또한 Stringtokenizer의 활용 정도?? 면 매우 쉽게 풀 수 있는 문제일 거라 생각한다. 해당 문제 로직이 쉽기 때문에 시간제한과 메모리 제한은 신경 안써도 된다고 판단했다. 내가 생각한 구현 로직은 이렇다.n * m 크기니깐 arr[n][m]A와 B행렬이 고정되어있음. 두 행렬을 for문으로 출력하고 합친 값을 배열에 넣어서 출력 [최종 코드]import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException..

[백준 JAVA] 25206 - 너의 평점은

문법을 익숙하게 해준 고마운 문제이다. 이번 문제는 메모리가 매우 넉넉하고 과목이 20개 고정이란 점에서 시간 복잡도와 메모리 초과는 생각 안해도 된다고 판단했다. 내가 생각한 로직이다.배열 형식인 split을 사용tokens[1] -> double형으로 변환tokens[2] -> 문자열 형식에 맞게 double형으로 변환tokens[1] * tokens[2]을 sum에 누적추후 나머지 전공평점을 더해서 나누기 이를 통해 코드를 작성해봤다. mport java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new ..

[백준 JAVA] 1316 - 그룹 단어 체커

해당 문제는 2년전에 푼 문제이기도 하고 쉽게 구현할 수 있는 문제였다. 먼저 나의 큰틀을 주석으로 정리해보았다./** Boolean을 사용, 총 26개의 int형 배열을 선언* 각각의 아스키코드를 사용하여 배열 위치를 지정* 한 번 사용된 문자는 false -> true로 변경* 만약 i - 1이 같은 문자 && 해당 배열이 true이면? -> 넘어감* 만약 i - 1이 같은 문자가 아니며, && 해당 배열이 true이면? -> break** i - 1의 값을 사용하니깐, StirngIndex에러가 안뜨게 조심!* */ 해당 시간과 메모리는 충분하다고 판단해 구현에 제약이 있진 않았다.그리고 나는 Boolean을 사용하여 문제를 풀었다.Boolean을 사용한 이유는 추후 연속되지 않는 중복된 문자를 ..

[백준 JAVA] 2941 - 크로아티아 알파벳

생각보다 강적(?)인 문제였다.먼저, 최대 100글자인 점에서, 시간제한과 메모리 제한은 문제가 없는 것으로 판단했다. 그래서 먼저 생각한 초기 큰 틀은 밑에와 같다./** 기본 카운 = 문자열 갯수* 만약, 해당 문자열이 특정 문자열 -> 이중 if 문으로 맞다면 count-1* legth + 1 값을 넘기지 않게 for문에서 s.length() - 1 로 자정* */ 나는 문제를 생각했는데 먼저 카운트 값을 글자수로 맞추고, 해당 단어가 있을 때, count--를 하는 것이였다!  슈슉 풀어보았다.import java.io.*;Main { public static void main(String[] args) throws IOException { BufferedReader br = n..

[백준 JAVA] 2444 - 별 찍기 - 7

간단한 별 찍기 응용 문제다!사실 브론즈 3 문제라 옛 기억에 코웃음치며 도전했지만, 생각보다 머리를 써야 풀 수 있었다.  시간초과와 메모리는 상관 없는 문제로 판단했다. 섣불리 바로 풀기보단, 먼저 주석코드로 어떻게 풀지에 대해 생각을 했다. /** 만약 5라면, 총 출력은 2 * n - 1개임* n이 최대 별의 개수는 2*n-1* 1. 3중 for문으로, 첫 for문은 전체 갯수를 의미함* 2. j = n - i; -> " " 출력* 3. k = 2*n-1까지 "*" 출력* 4. l = n - i; -> " " 출력* 5. 다시, 반대로,* */먼저 내가 푼 코드이다. import java.io.*;public class Main { public static void main(String[] ..

[백준 JAVA] 1157 - 단어공부

자바의 문법에 대해 헷갈리던 나는 살짝 헤맨 문제이다..!시간초과가 2초에 단어의 길이는 1,000,000이기 때문에 2중 for문은 되겠다고 판단, 하지만 메모리 초과에 대해 간과했다. 처음의 풀이는 이렇다.  BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String str2; int[] arr = new int[str.length()]; String[] sarr = new String[str.length()]; for (int i = 0; i 97) str2 = Str..