[Algorithm] 봉우리
·
Algorithm/CT
지도 정보가 N*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다.각 격자판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요.격자의 가장자리는 0으로 초기화 되었다고 가정한다.만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다.입력 첫 줄에 자연수 N이 주어진다.(2두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는다.출력 봉우리의 개수를 출력하세요.풀이선택 값 기준 4가지 조건을 구해서 구현하면 되는 문제이다.단, 테두리가 0이니까 i 와 j 인덱스가 어디서부터 시작해서 어디서 끝나는지 반복문을 잘 설정하면 되는 간단한 문제였다.impo..
[Algorithm] 격자판 최대 합
·
Algorithm/CT
5*5 격자판에 아래롸 같이 숫자가 적혀있습니다.N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합니다.입력 첫 줄에 자연수 N이 주어진다.(2두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는다.출력 최대합을 출력합니다. 풀이아래와 같이 4가지 경우의 수를 따진다.1. 가로 합 한 행씩 더해서 max 비교2. 세로 합 한 열씩 더해서 max 비교3. 좌측 상단에서 우측 하단으로 내려가는 대각4. 우측 상단에서 좌측 하단으로 내려가는 대각 import java.util.Scanner;public class Main { public static void main(String[] args) { Sca..
[Algorithm] 보이는 학생 -> 입력 및 복잡도 생각하고 풀기
·
Algorithm/CT
설명선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)입력 첫 줄에 정수 N(5출력 선생님이 볼 수 있는 최대학생수를 출력한다. 이번 문제는 입력을 잘 읽어야한다..처음에 2중 for문으로 풀면 되겠구나 싶어서 풀어보려다가 발견한게, 100,000개의 케이스가 입력되었을 때, 2중 for문으로 풀게되면 O(n^2) 의 복잡도를 띄게 되고 1초안에 실행이 될 수 없는 것을 알게 되었다.즉 , 이 문제는 최대 값(학생의 키) 를 갱신해가며 count를 증가시키는 방법으로 해결하면 됐다.import ja..
length vs length()
·
Algorithm
코테 풀면서 제발 좀 까먹지 말자는 의미에서 마지막으로 정리한다.length = 배열에 사용, 배열의 크기 반환(길이)int[] ex = [1, 2, 3] // length : 3 / maxIndex : 2 length() = String 클래스의 메서드 -> 문자열 길이를 반환String temp = "apple";int stringLength = apple.length(); // 5 이런 실수는 IDE에 너무 의존하면 발생하는 실수 같다..근데 실수도 계속하면 실력이라고.. 이런 기초적인 문법 좀 확실히 깨닫고 넘어가자
[Algorithm] 회문 문자열
·
Algorithm/CT
설명앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.단 회문을 검사할 때 대소문자를 구분하지 않습니다.입력 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.출력 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.예시 입력 1 gooG예시 출력 1YES Solution 1import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class String7 { public static String Solut..
[Algorithm] 중복문자 제거하기
·
Algorithm/CT
설명소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.입력 첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.출력 첫 줄에 중복문자가 제거된 문자열을 출력합니다.예시 입력 1 ksekkset예시 출력 1kset Solutionpackage String;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedHashSet;import java.util.Set;public class Main { public static String S..
[Algorithm] 문자 찾기
·
Algorithm/CT
문자 찾기설명한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.입력 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.문자열은 영어 알파벳으로만 구성되어 있습니다.출력 첫 줄에 해당 문자의 개수를 출력한다.예시 입력 1 Computercoolerc예시 출력 12 Solutionpackage String;import java.util.Scanner;public class Main { public static int Solution(String input, char target) { // 둘다 대문자화 해서 비교 inpu..
[Algorithm] 배열 입력이 [1,2,3](대괄호)와 같을 때
·
Algorithm
최근에 본 코테에서 주어진 입력방식대로 입력을 받고 처리하는 방법을 몰라서 틀린 문제가 있다.나는 언제나 코테를 준비하며 콘솔 입력 형식만 고집하며 연습해왔어서, [1,2,3] 이런식으로 입력 받으면 어떻게 처리해야할지 몰랐었다(진짜 몰라서 리스트 쓰고 난리났었다ㅡㅡ..)알고리즘은 다 구현하고 출력까지도 모든 테스트 케이스와 동일했지만, 입력이 대괄호에 감싸져 입력되는 경우에 어떻게 처리 되는지 몰라서 해결방법을 찾고, 두번 다시는 같은 실수를 반복하지 않겠다고 다짐하고자 이 글을 작성한다.입력 배열에 대한 대괄호를 제거하기정규표현식을 활용한 문자 제거 + 스트림 활용을 활용하여 문제를 해결할 수 있었다.절차는 아래와 같다.0. 입력은 String type으로 받기1. replaceAll() 메서드를 통..
[Algorithm] 팰린드롬 수 - (백준 1259)
·
Algorithm/CT
문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.입력입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.출력각 줄마다 주어진 수가 팰..