본문 바로가기

자료구조+알고리즘/BOJ

[1152][백준_브론즈2] 단어의 개수 - JavaScript https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 배열로 받은 string의 length 만 찍으면 되는 쉬운 문제 일 줄 알았는데 오잉?ㅇ? 틀림 ## 처음 푼 풀이 const fs = require('fs'); const input = fs.readFileSync('./input.txt').toString().trim().split(' '); console.log(input.length); => 반례 !! ' ' 공백을 입력받았을 때 1.. 더보기
[2562][백준_브론즈3] 최댓값 - JavaScript https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 자바스크립트로 백준 문제 풀려면 입력과 출력의 코드를 알아야한다 여간 귀찮은게 아니다 .. 나는 코드 에디터로 vscode 를 사용중이기 때문에 이런식으로 입력 받은 글자들을 input.txt 에 적은 다음 Node.js 환경에서 파일 시스템 모듈인 fs를 사용하여 파일을 읽어들이는 코드를 사용하여야 한다 const fs = require('fs'); const i.. 더보기
[11720][java][백준] 숫자의 합 알고리즘 분류 수학 문자열 사칙연산 풀이 ① charAt() 은 해당 문자의 아스키코드 값을 반환 하므로 반드시 - 48 또는 -'0' 을 해주어야 우리가 입력받은 숫자 값 그대로를 사용할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int cnt = sc.nextInt(); String num = sc.next(); int sum = 0; for(int i=0; i 더보기
[11654][java][백준] 아스키 코드 알고리즘 분류 구현 풀이 ▼ Scanner() Method - next() : String, 다음 토큰을 문자열로 리턴 - nextLine() :String, '\n'을 포함하는 한 line을 읽고 '\n'을 버린 나머지만 리턴 - nextInt() : int, 다음 토큰을 int 타입으로 리턴 - close() : void, Scanner 의 사용 종료 - hasNext() : boolean, 현재 입력된 토큰이 있으면 true, 아니면 새로운 입력이 들어올 때까지 무한정 기다리면서 새로운 입력이 들어오면 그때 true 리턴, ctrl+z 키가 입력되면 입력 끝으로 false 리턴 * next() 와 nextLine() 의 경우 둘 다 문자열을 받을 수 있는 메소드이지만 nextLine() 이 개행문자.. 더보기
[2884][java][백준] 알람 시계 알고리즘 분류 수학 구현 사칙연산 풀이 1. Scanner 로 입력 받기 import java.util.Scanner; /* 45분전의 시간을 구하면 된다 */ public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int m = sc.nextInt(); if( m 23시로 if(h < 0 ){ h = 23; } System.out.println(h + " " + m); }else { m -= 45; System.out.println(h + " " +.. 더보기
[10798][java][백준] 세로 읽기 알고리즘 분류 구현 문자열 풀이 - 5줄의 문자열을 입력받기 - 문자열을 char 2차원 배열로 하나씩 넣기 - 문자 배열이 '\0' 이라면 넘어가기 * char의 디폴트 값인 '\0'의 값 - 세로부터 출력해야하니 i j 반대로 java코드 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 31 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { Buffe.. 더보기
[11721][java][백준] 열 개씩 끊어 출력하기 알고리즘 분류 구현 문자열 풀이 - next() : 개행문자, 공백은 무시하고 문자를 입력받는다 - nextLint() : 한 줄 단위로 입력받기 때문에 개행문자도 한 줄로 인식한다. 이 문제에선 String 값을 받아오므로 둘 다 가능 - 열개씩 끊어서 한 줄에 하나씩 출력 입력받은 문자열 input 배열은 N개 까지 있다 ( 0부터 N-1까지 증가) 배열번호 i의 값이 10으로 나누었을 때 나머지가 0이고 and i값이 0이 아니면 한 줄 띄운다. java코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.Scanner; public class Main{ public static void main(String[] args) { Sc.. 더보기
[10808][java][백준] 알파벳 개수 알고리즘 분류 구현 문자열 풀이 - 아스키 코드 활용하면 쉬운 문제 : 아스키코드 97번 = a - 1 : Scanner 2.: StringBuilder StringBuilder 는 String과 문자열을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적다. - 값은 memory에 append하는 방식으로 클래스를 직접생성하지 않는다. 따라서 긴 문자열을 더하는 상황이 발생할 경우 적극적으로 사용 - StringBuilder 에는 append() 가 있는데 이는 문자열을 더하는 역할을 한다. - 만들어진 문자열을 출력하기 위해서는 StringBuilder의 인스턴스인 sb의 toString() 을 사용 java코드 - Scann.. 더보기
[16935][java][백준]배열 돌리기 3 알고리즘 분류 구현 문제 풀이 이번 문제는 실버2임에도 불구하고 쉬운편! 하지만 계산과정이 많아서 귀찮고 머리가 복잡하다.. 1번 연산 : 배열 상하 반전 2번 연산 : 좌우 반전 3번 연산 : 오른쪽 90도 회전 4번 연산 : 왼쪽 90도 회전 5번 연산 : 4그룹 1->2, 2->3, 3->4, 4->1 6번 연산 : 4그룹 1->4, 4->3, 3->2, 2->1 시간이 많이 걸린건 3번 부터.. 3번은 전체적으로 위치를 바꿔주면 되니까 한행이 바뀌는 위치를 보고 위치조정 해주면 된다 5번부터 한 배열을 4부분으로 나눠서 위치를 바꿔주는데 한행을 두개로 나누면 0열~m/2열 , m/2열~m열로 시작점과 끝점을 달리해서 위치를 바꿔준다 ! 하지만 여기서 주의할 점은 행과 열이 다르니 마지막 결과값이 .. 더보기
[18111][java][백준]마인크래프트 알고리즘 구현 브루트포스 알고리즘 문제 풀이 주요 문제 풀이는 1. 땅의 평탄화 2. 최소 시간 이 중요하다 그렇다면 "내가 사용 가능한 블록의 수 = 인벤토리에 있는 블록 수 + 땅에 있는 블록의 수" 이므로 N x M 크기의 집터를 나누어줘서 평탄화 했을 때의 한칸에 쌓을 수 있는 최대 크기를 구한다 ( 사용가능 블록수 / (N * M) ) 걸리는 시간을 구하고 0 미만이 되기전까지 (-1값이 나오면 안되므로) 블록의 수를 빼가면서 시간을 구하여 비교하면서 최소 시간을 판별한다. 예제 1번을 보자. N = 3, M = 4, B = 99 0 0 0 0 0 0 0 0 0 0 0 1 출력 : 걸리는 시간 : 2 , 땅의 높이 : 0 땅의 높이를 모두 같게 만들어야 하므로 내가 사용할 수 있는 블록의 수는 .. 더보기

반응형