[알고리즘] 순서도 이해하기

정은아·2024년 2월 14일
post-thumbnail

1단계 : 문제지를 해석하자

  • 문장마다 기능을 적어놓자.
  • 그리고 문장 순서대로 코드를 설계하는 것이 좋다. 또한, 문제의 키워드를 어느 정도 유추하자. ex.
    • ~하면, 경우에는, ~때, 하지만(제약조건) -> IF문

    • 순으로(순서) -> 정렬

    • ~부터 ~까지 -> for문

    • 다음과 같은 규칙을 따른다. -> 순서대로 코드를 작성하라

    • NxN  -> 이차원 배열을 만들자. 크기는 NxN이다

    • 처음에는 -> 반복문의 시작점

    • ~할 수 없는 경우에는 00출력 -> 반복문이 끝나도 해결 안될 수 있다.

      (이 외에도, 특정 키워드에 따라, BFS,DFS,DP 등을 선택할 수 있다.)

2단계 : 제약조건을 생각해보자

  • 문제에서 얍삽하게 예외상황을 준다. 이 예외상황을 미리 생각해두자.
  • 그래서 코드를 설계한 후에, 이러한 제약조건을 어떻게 해결할 수 있을 지 고민한다.

3단계 : 순서도를 그려보자

  • 3단계는 최대한 코드를 생각안하고 만들어보자.
  • 순서도에서 만든 것은 다 코드로 설계할 수 있다. 그러니 걱정 No No

4단계 : 코드를 작성하자 아래 사이트를 통해 순서도를 예측해보자.



문제 1. 백준 - 가장 큰 김민수

1단계 : 문제지 해석하기

  • 입력 : N
  • 조건 : N은 4보다 크거나 같고, 1,000,000보다 작거나 같은 자연수
            1. Int면 충분하겠다
  • 단계 : 문제에서 단계를 주며 푼다.
             1. N이 주어진다. -> N이라는 변수로 값을 받아야겠다.
             2. N보다 작거나 같은 것 -> N부터 하나씩 감소시키며 확인해보자
             3. 금만수 중 가장 큰 것 -> 금만수를 만나면, 하던 작업을 중지하고 출력하자.

2단계 : 제약조건

  • 조건중에서 가장 작은 금만수는 4, 조건중에서 가장 큰 금만수는 777,777이겠구나

3단계 : 순서도

  • 순서도 작성하기 1

  • 조금 더 자세하게 작성하기

4단계 : 코드를 작성하자



백준 - 줄세우기

1단계 : 문제지 해석하기

  • 입력 : N과 N개의 문자열
  • 조건 : N은 2~20 , 모두 대문자, 중복x
            1. Int면 충분하겠다
            2. 대소문자 구분 안해도 되겠다.
            3. 같은 이름이 두 번 나오는 경우가 없겠다.
  • 단계 :
            1. N이 주어진다. -> N이라는 변수와 N개의 크기를 가진 배열을 만들자
            2. 증가하는 순 -> 배열을 오름차순으로 만든 것을 한곳에 저장하자
            3. 감소하는 순 -> 배열을 내림차순으로 만든 것을 한곳에 저장하자
            4. 두 경우가 아니라면 ->
               ‘입력 받은 배열’과 ‘오름차순 배열’,’내림차순 배열’비교하자

2단계 : 제약조건

  • 이름은 2~12자, 인원은 2~20명이면 시간초과는 안나겠다.

3단계 : 순서도

4단계 : 코드를 작성하자

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글