
#1 구조적 프로그래밍 , 구조적 분석
2022. 7. 9. 22:25
컴퓨터공학 공부/소프트웨어공학
위 포스팅에서는 구조적 분석에 대해 정리하고자 합니다. 구조적 분석에 대해 알아보기 전, 프로그래밍의 발전과정에 대해 먼저 알아보고 시작하겠습니다. 프로그래밍 방식은 크게 3가지로 나눌 수 있습니다. 순차적 프로그래밍 어떤 입력을 받으면 순차적으로 처리하고 결과값을 도출하는 방식 구조적 프로그래밍 (Top-down) 어떠한 큰 요구사항을 해결하기 위해 요구사항을 작은 단위(모듈)들로 나누어서 구현하는 방식 구조적 프로그래밍에서는, 데이터를 처리하는 함수와 같은 기능은 구조화가 가능했지만 데이터는 구조화가 불가능했습니다. 보통 데이터는 함수에 매개변수 값으로 전달되어 처리되게 되는데, 프로그램이 커지게 되면 데이터의 값에 따라 함수가 다르게 처리되어야하는 경우가 많아지게 될 것입니다. 따라서 이러한 로직을..

SW 공학론 - 객체지향 프로그래밍 특징
2022. 7. 3. 15:31
컴퓨터공학 공부/소프트웨어공학
객체지향 프로그램을 객체라는 기본 단위로 나누고, 객체들의 상호작용을 통해 프로그램을 작성하는 방식 발전과정 SW가 점점 더 복잡해지고 거대해지면서, 기존의 절차지향 방법으로는 설계 및 구현에 어려움이 생기게 되었고, 해당 문제를 해결하기 위해 구조적 프로그래밍 방법이 대두 되었다. 구조적 프로그래밍 방법은 상위->하위로 쪼개는 Top-Down 방식이라고도 하며, 데이터를 처리하는 함수는 구조화 할 수 있었지만, 데이터는 구조화하지 못해 전역 네임스페이스 포화 문제 발생 또한 데이터의 상태에 따라 다르게 동작하는 함수가 늘어나면서, 함수들로 전달되는 변수들의 값을 확인하는 코드가 늘어났고, 규모가 커질수록 유지보수가 어려워졌다 이러한 문제를 해결하기 위해 등장한 것이 객체지향 프로그래밍이며 큰문제를 작은..
릿코드 - Longest Palindromic Substring (팰린드롬)
2022. 5. 15. 17:59
IT 공부/알고리즘
Given a string s, return the longest palindromic substring in s. Example 1: Input: s = "babad" Output: "bab" Explanation: "aba" is also a valid answer. Example 2: Input: s = "cbbd" Output: "bb" 주어진 문자열에서 가장 긴 팰린드롬 문자열을 구하는 문자 팰린드롬이란? aba, aabbaa 처럼 뒤집어도 똑같은 문자가 나오는 문자열 풀이방법 1) 2중 for문으로 가능한 모든 문자열의 경우의 수 출력 2) 해당 문자열이 팰린드롬인지 확인 -> DP의 개념이 사용된다. 3) 팰린드롬 문자열 중에 최댓값 저장 처음에는 문자열 팰린드롬 확인할 때 String의 r..
릿코드 - Longest Substring Without Repeating Characters
2022. 5. 15. 15:53
IT 공부/알고리즘
Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: Input: s = "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1. Example 3: Input: s = "pwwkew" Output: 3 Explanation: The answer is "wke", with the length of 3. Notice that the ans..