Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • Bakjoon
  • Java
  • 프로그래밍
  • repl.it
  • programmers
  • 자바
  • REPL
  • 레플릿
  • algorithm
  • coding
  • AP CS A
  • 프로그래머스
  • auto-graded course
  • java basic
  • 백준
  • 코딩
  • 알고리즘
  • 코딩배우는 학생
  • Java tutorial
  • 코딩배우는학생

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

[백준/5217번] 쌍의 합 (HSPC 2012) [Java]
Algorithms/BOJ[Java]

[백준/5217번] 쌍의 합 (HSPC 2012) [Java]

2019. 12. 9. 11:48

문제

1보다 크거나 같고 12보다 작거나 같은 자연수가 주어졌을 때, 합이 n이 되는 두 수의 쌍을 찾는 프로그램을 작성하시오.

예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 항상 달라야 한다. 즉, 3,3은 올바른 쌍이 아니다. 또, 첫 번째 숫자가 두 번째 숫자보다 작아야 한다.

출력하는 쌍은 항상 사전순으로 출력해야 한다. 즉, 각 쌍의 작은 숫자로 비교를 해야 한다. 예를 들어 1,5는 2,4보다 사전순으로 앞선다.

입력

첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.

출력

각 테스트 케이스마다 n을 만드는 쌍을 사전순으로 출력한다. n을 만드는 쌍이 없는 경우에는 아무것도 출력하지 않는다.

예제 출력 형식을 참고해 출력한다.

 


Solution

 공통적으로 들어가는 "Pairs for"을 반복문의 처음에 출력한 뒤 x값을 a, y값을 b로 선언해준다. 그리고 조건인 a값이 b보다 작아야 되며 같으면 안된다는 조건을 if문을 통해서 걸러 주도록 한다. 주의할 점이 있다면 ,(콤마)인데. 두개 이상일때만 출력해야하므로 스위치 역할을 하는 sw를 선언해서 2개이상일때만 출력하도록 만들어준다. ㅇㅅㅇ

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
32
33
import java.util.*;
import java.io.*;
 
class Bakjoon {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in); 
       int n=sc.nextInt();
       int sw=0;
       
       for(int i=0;i<n;i++) {
           String temp="Pairs for ";
           int input=sc.nextInt();
           int a=1; int b=1;
           System.out.print(temp+input+':');          
           for(int j=1;j<input;j++) {
               for(int k=j+1;k<input;k++) {
                   if(j<k && j!=k && j+k==input &&sw==0) {
                       System.out.print(" "+j+" "+k);
                       sw=1;}
                   else if(j<k && j!=k && j+k==input &&sw==1) {
                           System.out.print(", "+j+" "+k);
                           sw=1;  
                   }
               }
           }
           sw=0;
           System.out.println();
       }
       
}
}
 
    
 
 

https://www.acmicpc.net/problem/5217

 

5217번: 쌍의 합

문제 1보다 크거나 같고 12보다 작거나 같은 자연수가 주어졌을 때, 합이 n이 되는 두 수의 쌍을 찾는 프로그램을 작성하시오. 예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 항상 달라야 한다. 즉, 3,3은 올바른 쌍이 아니다. 또, 첫 번째 숫자가 두 번째 숫자보다 작아야 한다. 출력하는 쌍은 항상 사전순으로 출력해야 한다. 즉, 각 쌍의 작은 숫자로 비교를 해야 한다. 예를 들어 1,5는 2,4보다 사전순으로 앞선다.

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'Algorithms > BOJ[Java]' 카테고리의 다른 글

[백준/10669번] 오늘 날짜 [Java]  (0) 2019.12.09
[백준/10093번] 숫자 [Java]  (0) 2019.12.09
[백준/14624번] 전북대학교(2017 전북대학교 프로그래밍 경진대회) [Java]  (0) 2019.12.08
[백준/15552번] 빠른 A+B [Java]  (1) 2019.12.08
[백준/10991번] 별 찍기-16 [Java]  (0) 2019.12.08
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/10669번] 오늘 날짜 [Java]
    • [백준/10093번] 숫자 [Java]
    • [백준/14624번] 전북대학교(2017 전북대학교 프로그래밍 경진대회) [Java]
    • [백준/15552번] 빠른 A+B [Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바