전체 글 172

[백준] - 최단거리 11403

경로 찾기 문제 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래프의 인접 행렬이 주어진다. i번째 줄의 j번째 숫자가 1인 경우에는 i에서 j로 가는 간선이 존재한다는 뜻이고, 0인 경우는 없다는 뜻이다. i번째 줄의 i번째 숫자는 항상 0이다. 출력 총 N개의 줄에 걸쳐서 문제의 정답을 인접행렬 형식으로 출력한다. 정점 i에서 j로 가는 경로가 있으면 i번째 줄의 j번째 숫자를 1로, 없으면 0으로 출력해야 한다. 간단한 설명은 주석^^ import java.util.Arrays; import java.u..

[유효한팰린드롬]

설명 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분 X 알파벳 이외의 문자들의 무시 예시 입력 1 found7, time: study; Yduts; emit, 7Dnuof 예시 출력 1 YES import java.util.*; public class 유효한팰린드롬 { public String solution(String str){ String answer = "NO"; str = str.toUpperCase().replaceAll("[^A-Z]",""); String tmp = new StringBuilder(str).r..

알고리즘/코테 2021.11.23

소프트웨어 공학 정리

소프트웨어 공학의 선형 순차 모형 순서 분석 → 설계 → 구현 → 테스트 → 유지보수 소프트웨어 위기의 원인 소프트웨어의 특징에 대한 이해 부족 소프트웨어의 관리 부재 프로그래밍에만 치중 소프트웨어의 생산성 저조 소프트웨어 재공학의 주요 활동 분석 : 재공학의 대상 선정 개조/재구조/재구성 : 상대적으로 같은 추상적 수준에서 하나의 표현을 다른 표현 형태로 바꿈, 소프트웨어의 기능과 외적인 동작은 안 바뀜 역공학 : 기존 SW를 분석하여 SW 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만듬 , 대상 SW가 있어야함 , 재문서화 이식 : 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환 임계경로는 가장 오랜 걸린 기일 자료 흐름도 (DFD)의 구성 요소 프로세스..

[회문문자]

문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다. 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요. 출력 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다. 예시 입력 gooG 예시 출력 YES 1. charAt 이용 풀이 (주석) 2. indexOf 이용 풀이 import java.util.ArrayList; import java.util.Scanner; public class test { // 중복 문자열 제거 // 회문 찾기 public String solution(String str){ String answer = "YES"; String tmp = str.toUpperC..

알고리즘/코테 2021.10.11

[중복문자열제거]

문제 소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요. 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다. 예시 입력 ksekkset 예시 출력 kset import java.util.Scanner; public class 중복문자열제거 { public String solution(String str){ String answer = ""; //중복 문자열을 제거하자 for(int i =0; i

알고리즘/코테 2021.10.11

[특정문자뒤집기]

문제 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요. 출력 첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다. 예시 입력 a#b!GE*T@S 예시 출력 S#T!EG*b@a import java.util.Scanner; public class 특정문자뒤집기 { public String solution(String str){ String answer = ""; // String tmp = str.toLowerCase(); char[] a = str.toCharArray(); int lt = 0, rt = str.length() -1 ; // 만약 영어이면 , 65~90 // 97~122 // 아니면 특수문..

알고리즘/코테 2021.10.11

[단어뒤집기] stringBuilder, reverse 사용

문제 N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요. 출력 N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다. 예시 입력 3 good Time Big 예시 출력 doog emiT giB import java.util.ArrayList; import java.util.Scanner; public class 단어뒤집기 { public ArrayList solution(int n, String[] str){ ArrayList answer = new ArrayList(); //stringbuilder -> reverse // for(String x : str){ // String tmp = new StringBuilder(x).reverse().toString(); //..

알고리즘/코테 2021.10.11

[대소문자 변환]

import java.util.Scanner; public class 대소문자변환 { public String solution(String str){ String answer = ""; // 아스키 넘버로도 가능 65~90 대문자 // 소문자 97~122 // 32를 빼면 대문자가 된다 for(char x : str.toCharArray()){ if(x>=97 && x 대문자로 // answer += Character.toUpperCase(x); // }else{ // //대문자면 소문자로 // answer += Character.toLowerCase(x); // } // } return answer; } public static void main(String[] args){ 대소문자변환 T = new ..

알고리즘/코테 2021.10.11

[문장속단어]

import java.util.Scanner; public class 문장속단어 { public String solution(String str){ //가장긴 단어를 찾아라 //띄어쓰기로 나눠짐 String answer = ""; int max = Integer.MIN_VALUE; int pos = Integer.MIN_VALUE; //split 띄어쓰기로 배열에 들어감 // String[] s = str.split(" "); // for(String x : s){ // int len = x.length(); // if(len > max){ // max = len; // answer = x; // } // } // index of 로 해보자 // index of 는 띄어쓰기가 발견되면 곳을 리턴 // 발..

알고리즘/코테 2021.10.11