일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- softeer
- 프로그래머스
- 관계형 데이터베이스
- Java script
- 해시
- 백준
- BFS
- 오블완
- thinking differently
- Programming
- Steve Jobs
- programmers
- nextInt
- Java
- JavaScript
- 반복문
- Computer Science
- Spring
- Python
- 소프티어
- 자바의 정석(기초편)
- java.lang 패키지
- 티스토리챌린지
- MySQL
- 코딩테스트
- StringTokenizer
- 알고리즘
- Spring Framework
- 영어원서
- SQL
- Today
- Total
목록알고리즘 (6)
도라에몽 개발자

문제는 다음과 같습니다. 배열과 Queue, 그리고 반복문을 활용하여 풀었습니다.- 미리 동서남북으로 이동할 수 있는 값들을 배열로 만들어뒀습니다.- 이미 지나온 영역은 boolean을 활용하여 true 로 설정했습니다.- 이동한 위치와 누적된 이동거리를 배열에 담아 queue에 넣었습니다.- 목표지점에 도착하면 총 이동거리를 반환하도록 하고, 목표지점에 도착하지 못했다면 -1을 반환하도록 설정했습니다. import java.util.*;class Solution { public int solution(int[][] maps) { // 이동방향 {상, 하, 좌, 우} int[] dx = {0, 0, -1, 1}; int[] dy = {-1, 1, 0, 0}; ..

문제는 다음과 같다.출처: https://softeer.ai/practice/6269 조작법 앞뒤로 다른 버튼 조작이 있어도 비밀 메뉴로 인정된다는 조건과 버튼은 1이상 9이하라는 조건이 주어졌기 때문에 문자열들을 contains(String key) 메서드를 활용하여 비교하여 결과를 도출해내는 방식으로 풀어냈다.참고자료: https://www.w3schools.com/java/ref_string_contains.asp import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRea..

문제는 다음과 같다. 2차원 배열의 특정 열을 기준으로 적절히 정렬하면 꽤 간단하게 풀 수 있는 문제였다.수업 종료시간이 빠를 수록 이후에 여러개의 수업들을 추가할 수 있기 때문에, 수업 종료시간을 기준으로 오름차순 정렬하여 처리했다. 그리고 반복문을 순회할 때 이전 수업 종료시간보다 다음 수업 시작시간이 크거나 같아서 추가할 수 있다면 이전 수업종료시간을 다음 수업의 종료시간으로 업데이트해줬다. 시간이 엇갈려서 수업을 듣지 못한다면, 기존 초기값 그대로 유지된다. 추가된 수업들의 갯수를 카운트하여 총 갯수를 반환해주었고, 전체 테스트에 통과했다.import java.io.*;import java.util.*;public class Main { public static void main(Strin..
문제는 저작권 문제로 소프티어 홈페이지에서 직접 확인이 필요하다.https://softeer.ai/practice/7628 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 의외로 입출력과 정렬, 배열, 반복문 정도만 활용하면 꽤 간단히 풀리는 문제였다.각 집의 난로 반지름 값은 배열에 저장하여 활용하였고, 집집마다 가지고 있는 난로의 반지름이 연탄 반지름의 배수인 집들을 카운트하여 cnt 변수에 할당했다. 그리고 반복문이 순회할 때마다 이전 cnt 값과 비교하여 가장 많은 난로의 개수를 찾아냈다.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws I..

문제는 다음과 같다. 입출력과 조건비교만 잘 처리하면 간단하게 풀 수 있는 문제였다.Scanner와 BufferedReader & StringTokenizer를 각각 활용하여 실행했을 때 실행시간 및 메모리를 비교해보았다.지난 글 참고: 2023.12.06 - [ALGORITHM/백준(BAEKJOON)] - 백준(BAEKJOON) - 15552번: 빠른 A+B (Java) *** Buffer 우선 Scanner를 활용하여 입력을 했을 때의 결과는 다음과 같다.- 실행시간: 0.136 sec- 메모리: 11.93 MBimport java.io.*;import java.util.*;public class Main { public static void main(String[] args) { ..

문제는 다음과 같다. 처음에는 돌의 높이들의 최소값과 인덱스를 찾아서, 이후에 오는 값들을 서로 비교해가며 순차적으로 증가하는 값들의 개수를 확인하고자 했다. 하지만 7개의 테스트만 통과하고 나머지는 실패하는 결과를 얻었다.아마 돌의 높이들 중에서 최소값을 찾고, 그 최소값의 인덱스를 찾고, 또 다시 반복문을 순회하며 밟은 돌의 개수의 최대값을 찾아가는 과정에서 여러차례 for문이 사용되었고 시간 초과가 발생했을 것으로 예상된다. import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Bu..